unittest是python测试单元,类似于JUint框架。
Testcase:
一个Testcase就是一个测试用例。使用时,
1.首先编写一个类(class),继承unittest中Testcase。
2.编写测试类中定义测试方法,每个测试必须以test开头(可以采用test1或test_1),且没有其他参数输入。
3.执行unittest.main()
如下所示:
import unittest
def div(a,b):
return a/b
class myunittest(unittest.TestCase):
def test1(self):
self.assertEqual(div(1,1),1)
if __name__ == '__main__':
unittest.main()
常用模块:
序号 | 断言方法 | 断言描述 |
---|---|---|
1 | assertEqual(arg1, arg2, msg=None) | 验证arg1=arg2,不等则fail |
2 | assertNotEqual(arg1, arg2, msg=None) | 验证arg1 != arg2, 相等则fail |
3 | assertTrue(expr, msg=None) | 验证expr是true,如果为false,则fail |
4 | assertFalse(expr,msg=None) | 验证expr是false,如果为true,则fail |
5 | assertIs(arg1, arg2, msg=None) | 验证arg1、arg2是同一个对象,不是则fail |
6 | assertIsNot(arg1, arg2, msg=None) | 验证arg1、arg2不是同一个对象,是则fail |
7 | assertIsNone(expr, msg=None) | 验证expr是None,不是则fail |
8 | assertIsNotNone(expr, msg=None) | 验证expr不是None,是则fail |
9 | assertIn(arg1, arg2, msg=None) | 验证arg1是arg2的子串,不是则fail |
10 | assertNotIn(arg1, arg2, msg=None) | 验证arg1不是arg2的子串,是则fail |
11 | assertIsInstance(obj, cls, msg=None) | 验证obj是cls的实例,不是则fail |
12 | assertNotIsInstance(obj, cls, msg=None) | 验证obj不是cls的实例,是则fail |
示例:
import unittest
def div(a,b):
return a/b
class myunittest(unittest.TestCase):
def test1(self):
#assertEqual,返回True
self.assertEqual(div(1,1),1)
def test2(self):
#assertNotEqual,返回F
self.assertNotEqual(div(1,1),1)
def test3(self):
#assertTrue,返回True
a = "abc"
self.assertTrue(a == "abc")
def test4(self):
#assertFalse,返回F
a = "abc"
self.assertFalse(a == "abc")
def test5(self):
#assertIs,返回T
a = "abc"
b = "abc"
self.assertIs(a, b)
def test6(self):
#assertIsNot,返回T
a = "abc"
b = "abc"
self.assertIsNot(a, b)
def test7(self):
#assertIsNone,返回F
a = None
self.assertIsNone(a)
def test8(self):
#assertIsNotNone,返回T
a = None
self.assertIsNotNone(a)
def test9(self):
#assertIn,返回T
a = "hello"
b = "hello world"
self.assertIn(a,b)
def test10(self):
#assertNotIn,返回F
a = "hello"
b = "hello world"
self.assertNotIn(a,b)
if __name__ == '__main__':
unittest.main()