断言如同在测试用例上,类似于预期结果与实际结果是否一致,如果一致则表示测试通过,Assert断言很好的用于测试结果判断上,更灵活的对预期结果和实际结果进行对比,下面简单的介绍一下unittest的Assert断言
unittest中基础的assert断言包括:
方法 | 用法 | 说明 |
---|---|---|
assertEqual(a, b) | a == b | 用来判断a与b相等,如果相等则测试通过 |
assertNotEqual(a, b) | a != b | 用来判断a与b不相等,如果不相等则测试通过 |
assertTrue(x) | bool(x) is True | 用来判断条件是否为真,如果条件为真,测试通过(备注:最好使用assertEqual断言方法,代替) |
assertFalse(x) | bool(x) is False | 用来判断条件是否为假,如果条件为假,测试通过(备注:最好使用assertNotEqual断言方法,代替) |
assertIs(a, b) | a is b | 用来判断a和b是不是同一个对象,如果是,测试通过 |
assertIsNot(a, b) | a is not b | 用来判断a和b是不是同一个对象,如果不是,测试通过 |
assertIsNone(x) | x is None | 用来判断a是否空,如果为空,测试通过 |
assertIsNotNone(x) | x is not None | 用来判断a是否空,如果不为空,测试通过 |
assertIn(a, b) | a in b | 用来判断a字符串是否出现在b字符中,如果出现,测试通过 |
assertNotIn(a, b) | a not in b | 用来判断a字符串是否出现在b字符中,如果不出现,测试通过 |
assertIsInstance(a, b) | isinstance(a, b) | 用来判断a是否属于某一个数据类型,如果属于,测试通过 |
assertNotIsInstance(a, b) | not isinstance(a, b) | 用来判断a是否属于某一个数据类型,如果不属于,测试通过 |
# -*- coding:utf-8 -*-
import unittest
class MyAssertTest(unittest.TestCase):
@classmethod
def setUpClass(self):
pass
def setUp(self):
pass
def tearDown(self):
pass
@classmethod
def tearDownClass(self):
pass
def test_assertNotEqual(self):
a = 1
b = 2
self.assertNotEqual(a,b,msg="测试不通过,a是等于b的") #a不等于b是,测试通过
def test_assertTrue(self):
bool=True
self.assertTrue(bool,msg="测试不通过,bool值为假")
def test_assertFalse(self):
bool=False
self.assertFalse(bool,msg="测试不通过,bool值为真")
def test_assertIs(self):
a = [1]
b = a
self.assertIs(a,b,msg="测试不通过,a和b不是同一个obj")
def test_assertNotIs(self):
a = [1]
b = [1]
self.assertIsNot(a,b,msg="测试不通过,a和b是同一个obj")
def test_assertIsNone(self):
a = None
self.assertIsNone(a,msg="测试不通过,a变量不为空")
def test_assertIsNotNone(self):
a = 1
self.assertIsNotNone(a,msg="测试不通过,a变量为空")
def test_assertIn(self):
a = "Hello"
str = 'Hello World'
self.assertIn(a,str,msg="测试不通过,%s字符串不在%s中"%(a,str))
def test_assertNotIn(self):
a = "hello"
str = 'Hello World'
self.assertNotIn(a,str,msg="测试不通过,%s字符串在%s中"%(a,str))
def test_assertIsInstance(self):
a = 1
self.assertIsInstance(a,str,msg="测试不通过,%s不是%s类型,%s是%s类型"%(a,str,a,type(a)))
def test_assertIsNotInstance(self):
a = 1
self.assertNotIsInstance(a,str,msg="测试不通过")