unittest
unittest框架会把以test_开头的实例方法识别为用例,同时会自动执行
如果不是test_方法,那么不会被当做测试用例执行
一、导入unittest
import unittest 系统内置模块,不需要安装
二、定义类
class TestMulti(unittest.TestCase):
定义继承unittest.TestCase的类:TestMulti
如果没有继承TestCase,方法以test_开头,也不会执行
三、类中创建实例方法
def test_negative_multi(self):
注意:
1、 在类中定义的方法,一定要以test_开头
2、 一定要以test_开头,如果不以test_开头,将无法做断言
3、创建实例方法,用于执行一条测试用例
四、获取实际结果
real_result = MathOperation(-2,-4).multiply()
五、验证实际结果与预期结果是否一致
except_result = -8
self.assertEqual(except_result,real_result,msg='测试两个负数相乘失败')
assertEqual
第一个参数为期望值,第二个参数为实际值
第三个参数。msg为断言失败的提示信息
六、运行测试用例
if __name__ == '__main__':
unittest.main()
1、 以后运行unittest的时候,我们就调用父类的main()方法来运行
2、unittest框架,会把以test_开头的方法识别为用例,同时会自动执行
3、如果不是test_开头的方法,那么不会被当做用例自动执行
4、执行的总用例数,所有以test_开头的实例方法总数
七、顺序
每个测试方法是以test_开头的实例方法名的ASCII码数字从小到大执行。
def test_negative_multi(self): def test_neg_pos_multi(self):
字母a ASCII码 ord('a') 结果:97
_ ASCII码 ord('_') 结果:95
会先执行:def test_neg_pos_multi(self):
八、其他断言
参考网址
https://www.cnblogs.com/mq0036/p/7205626.html
self.assertIsNone() 不为空
self.assertIs(a,b) 判断a 与b的对象是否相同,成立则True,否则False
self.assertTrue(a,msg=none) #判断a是否为True
self.assertIsInstance(a,b) 判断a的数据类型是否为b,isinstance(a,b) 成立则通过,否则失败
self.assertIn(a,b) 判断a in b是否成立,正确则True,否则为False
九、注意
把鼠标放在实例方法名上来运行用例,那么只会运行当前一条用例。
在类的上面,点击鼠标来运行,会运行多条用例