踏云揽月 发表于 2023-12-5 17:45:09

Unitest单元测试,常用断言方法Assertion

unittest库提供了很多实用方法来检测程序运行的结果和预期。包括三种类型的方法,每一种都覆盖了典型的类型,比如:
检查相等值、逻辑比较、异常
如果给定的Assertion通过了,那么测试会执行下一行代码。如果给定的assertion没有通过,测试会暂停并且生成错误信息。unittest库提供所有标准的xUnit assert方法。下面列出较重要方法的一部分:
方法检查版本assertEqual(a, b)a ==b assertNotEqual(a, b)a !=b assertTrue(x)bool(x) is True assertFalse(x)Bool(x) is False assertIs(a, b)a is b3.1assertIsNot(a, b)a is not b3.1assertIsNone(x)x is None3.1assertIsNotNone(x)x is not None3.1assertIn(a, b)a in b3.1assertNotIn(a, b)a not in b3.1assertIsInstance(a, b)isinstance(a,b)3.1assertNotIsInstance(a, b)not isinstance(a,b)3.1 
-assertEqual(first,second,msg=None)
断言第一个参数和第二个参数是否相等,如果不相等则测试失败
-assertNotEqual(first,second,msg=None)
assertNotEqueal()和assertEqual()相反,它用于第一个参数与第二个参数是否不相等,如果相等则测试失败
-assertTrue(expr,msg=None)
-assertFalse(expr,msg=None)
测试表达式是true(或false)
-assertIn(first,second,msg=None)
-assertNotIn(first,second,msg=None)
判断第一个参数是否在第二个参数中,反过来讲,第二个参数是否包含第一个参数
-assertIs(first,second,msg=None)
-assertIsNot(first,second,msg=None)
断言第一个参数和第二个参数是否为同一个对象
-assertIsNone(first,second,msg=None)
-assertIsNotNone(first,second,msg=None)
断言表达式是否为None对象
-assertIsInstance(first,second,msg=None)
-assertIsNotInstance(first,second,msg=None)
断言obj是否为cls的一个实例
unittest案例:
calculate.py:
class Math:
    def __init__(self,a,b):
      self.a = int(a)
      self.b = int(b)

    def add(self):
      return self.a + self.btest_Math.py:
 from calculator import Math
import unittest

class TestMath(unittest.TestCase):
    def setUp(self):
      print("test start")
    def test_add(self):
      j = Math(5,10)
      self.assertEquals(j.add(),15)
      # self.assertEquals(j.add(),12)
    def test_add1(self):
      j = Math(55,100)
      self.assertNotEqual(j.add(),145)
    def test_add2(self):
      j = Math(5,10)
      self.assertTrue(j.add() > 10)
    def assertIs_test(self):
      self.assertIs("abc","abc")
      # self.assertIs("ab","abc")
    def assertIn_test(self):
      self.assertIn("python","hello python")
      # self.assertIn("abc","hello python")
    def tearDown(self):
      print("test end")
if __name__ == '__main__':
    # unittest.main()
    # 构造测试集
    suit = unittest.TestSuite()
    suit.addTest(TestMath("test_case"))
    # 执行测试
    runner = unittest.TextTestRunner()
    runner.run(suit)
 
 

来源:https://www.cnblogs.com/QAbujiaban/p/17877666.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: Unitest单元测试,常用断言方法Assertion