翼度科技»论坛 编程开发 python 查看内容

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

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
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)
 
 

来源:https://www.cnblogs.com/QAbujiaban/p/17877666.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具