前言:对于Python.有个模块unittest可以引用个,用来对我们自己写的模块代码进行测试。
一.其中测试类必须有一下几个要点:
1.导入要测试的模块
2.导入unittest模块
3.测试类必须继承unittest.TestCase
4.选择断言方法
5.执行unittest.main
下面举个例子进行分析
模块代码hello.py
def get_formatted_name(first,last):
full_name = first+' '+last
return full_name
测试代码test.py
import unittest
from hello import get_formatted_name
class NamesTestCase(unittest.TestCase):
def test_first_last_name(self):
final_name = get_formatted_name('huang','gui')
self.assertEqual(final_name,'huang gui')
unittest.main()
二.解析:
我们来看测试代码:
1.导入要测试的模块 : from hello import get_formatted_name
2.导入unittest模块: import unittest
3.测试类必须继承unittest.TestCase: class NamesTestCase(unittest.TestCase):
4.选择断言方法: assertEqual (判断对象是否一致)
5.执行unittest.main
对于测试类中,执行main的时候,所有以test_开头的方法都会自动运行
而对于如果测试不通过,报错中可以看出具体是哪些错误,到时进行修改。例如我们把测试代码改为
import unittest
from hello import get_formatted_name
class NamesTestCase(unittest.TestCase):
def test_first_last_name(self):
final_name = get_formatted_name('Huang','gu')
self.assertEqual(final_name,'huang gui')
unittest.main()
结果不通过:
F
======================================================================
FAIL: test_first_last_name (__main__.NamesTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "E:/PythonWorkplace/venv/test.py", line 6, in test_first_last_name
self.assertEqual(final_name,'huang gui')
AssertionError: 'Huang gu' != 'huang gui'
- Huang gu
? ^
+ huang gui
? ^ +
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures=1)
我们就可以直接排错了
三.上面例子断言只是用了判断是否相同的方法,事实上还有很多。例如判断不同:assertNotEqual(a,b)