unittest断言方法的使用

unittest框架的TestCase类提供以下方法用于测试结果的判断

方法 检查 版本
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 b 3.1
assertIsNot(a, b) a is not b 3.1
assertIsNone(x) x is None 3.1
assertIsNotNone(x) x is not None 3.1
assertIn(a, b) a in b 3.1
assertNotIn(a, b) a not in b 3.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:

class Math:
    def __init__(self,a,b):
        self.a = int(a)
        self.b = int(b)

    def add(self):
        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/NancyRM/p/8377721.html