Python中unittest的断言方法详解
断言方法:
是unittest提供的一组方法,可以通过这些方法完成期望结果和实际结果的对比
方法有:
assert+空格+要判断的语句+逗号+'报错语句' python提供
assertEqual(a,b,msg='报错语句') 若a==b不报错,否则报错内容为msg
assertNotEqual(a,b,msg='报错语句') 若a!=b不报错,否则报错内容为msg
assertIn(a,b,msg='报错语句') 若a in b不报错,否则报错内容为msg
assertNotIn(a,b,msg='报错语句') 若a not in b不报错,否则报错内容为msg
assertTrue(a,msg='报错语句') a为表达式,若a成立不报错,否则直接报错
assertFalse(a,msg='报错语句') a为表达式,若a不成立不报错,否则直接报错
assertIsInstance(obj,cls,msg='报错语句') obj是cls的一个实例,是则不报错,否则直接报错
assertNotIsInstance(obj,cls,msg='报错语句') obj不是cls的一个实例,不是不报错,否则直接报错
assertIsNone(a,msg='报错语句') a为None不报错,否则直接报错
assertNotIsNone(a,msg='报错语句') a不为None不报错,否则直接报错
下面是做的例子,后边是运行结果:
运行结果显示:
OK和'.'代表开发和测试的代码无问题
F(FAIL)开发代码有问题,测试代码无问题
E(ERROR)测试代码有问题,开发代码不确定
assert 3 == 5, '错了' # 错了
assert type(8) is int, '错了' # 运行成功,不显示结果
assert id(9) is int, '错了' # 错了
assert type(id(9)) is int, '错了' # 运行成功,不显示结果
import unittest
class Test(unittest.TestCase):
def setUp(self):
print('测试开始')
def testEqual(self):
self.assertEqual(10,100,msg = '错了') # 错了
self.assertEqual('a','a',msg = '错了') # OK
self.assertNotEqual('a','b',msg = '错了') # OK
self.assertIn(1,[2,3,4,5],msg = '错了') # 错了
self.assertNotIn('a',[2,3,4,5],msg = '错了') # OK
self.assertNotIn('a',{'a':1},msg = '错了') # 错了
self.assertNotIn(1,{'a':1},msg = '错了') # OK
self.assertTrue(6 == 6,msg = '错了') # OK
self.assertTrue(bool(3) is False,msg = '错了') # 错了
self.assertFalse(bool is False,msg = '错了') # OK
class People:
print('我是人类')
class Dog:
print('我是犬类')
xiaoming = People()
gouzi = Dog()
self.assertIsInstance(gouzi,People,msg = '错了') # 报错
self.assertNotIsInstance(xiaoming,People,msg = '错了') # 报错
self.assertNotIsInstance(bool,int,msg = '错了') # OK
self.assertIsInstance(False,int,msg = '错了') # OK
self.assertIsInstance(3,bool,msg = '错了') # 报错
self.assertIsNone(None,msg = '错了') # OK
self.assertIsNone(0,msg = '错了') # 报错
self.assertIsNone('',msg = '错了') # 报错
self.assertIsNone(None,msg = '错了') # OK
def myfum():
print('我是一个函数')
self.assertIsNone(myfum,msg = '错了') # 报错
self.assertIsNone(myfum(),msg = '错了') # OK
self.assertIsNone(print,msg = '错了') # 报错
self.assertIsNone(print(),msg = '错了') # OK
def tearDown(self):
print('测试结束')
unittest.main()
总结
到此这篇关于Python中unittest的断言方法详解的文章就介绍到这了,更多相关Python unittest断言内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341