ToB企服应用市场:ToB评测及商务社交产业平台

标题: Unitest单元测试,常用断言方法Assertion [打印本页]

作者: 冬雨财经    时间: 2024-2-3 22:44
标题: 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.1
assertIsNot(a, b)a is not b3.1
assertIsNone(x)x is None3.1
assertIsNotNone(x)x is not None3.1
assertIn(a, b)a in b3.1
assertNotIn(a, b)a not in b3.1
assertIsInstance(a, b)isinstance(a,b)3.1
assertNotIsInstance(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:
  1. class Math:
  2.     def __init__(self,a,b):
  3.         self.a = int(a)
  4.         self.b = int(b)
  5.     def add(self):
  6.         return self.a + self.b
复制代码
test_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)
 
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4