Python中unittest的断言方法

断言方法:

        是unittest提供的一组方法,可以通过这些方法完成期望结果和实际结果的对比

方法有:

  1. assert+空格+要判断的语句+逗号+'报错语句'        python提供
  2. assertEqual(a,b,msg='报错语句')        若a==b不报错,否则报错内容为msg
  3. assertNotEqual(a,b,msg='报错语句')        若a!=b不报错,否则报错内容为msg
  4. assertIn(a,b,msg='报错语句')        若a in b不报错,否则报错内容为msg
  5. assertNotIn(a,b,msg='报错语句')        若a not in b不报错,否则报错内容为msg
  6. assertTrue(a,msg='报错语句')        a为表达式,若a成立不报错,否则直接报错
  7. assertFalse(a,msg='报错语句')        a为表达式,若a不成立不报错,否则直接报错
  8. assertIsInstance(obj,cls,msg='报错语句')        obj是cls的一个实例,是则不报错,否则直接报错
  9. assertNotIsInstance(obj,cls,msg='报错语句')        obj不是cls的一个实例,不是不报错,否则直接报错
  10. assertIsNone(a,msg='报错语句')       a为None不报错,否则直接报错
  11. 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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈小瑜i

请多多支持,谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值