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 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:

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)
05-28 01:16