Python测试

测试

测试指通过运行程序以确定它是否按预期工作。我们通常需要将代码和规范结合起来,进行各种路径探索,并在基础上探究一种启发式方法。基于代码探索的路径启发式方法称为白盒测试,基于规范路径的启发式方法称为黑盒测试

测试一般分为两个阶段。第一个阶段称为单元测试。这个阶段测试者构建并执行测试,来确定代码每个独立单元是否正常工作。第二个阶段称为集成测试,用来确定整个程序是否能按预期进行。实际工作中需要不断重复这两个阶段

调试是一种需要学习的技能,好消息是学会调试并不难

人们至少花费了40年建立被称为‘调试器’的工具,所有流行的Python IDE中都带有调试器工具,这些调试工具帮助人们找到程序中的错误,但事实上帮助并不大。更重要的是接近问题,经验丰富的程序员可能根本不用调试工具,也许他们认为最重要的调试工具是 print()

Python中提供了单元测试函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

```python
import unittest

class TestIntSet(unittest.TestCase):
def setUp(self):
print('before Testing...')

def test__init__(self):
s = IntSet()
self.assertTrue(isinstance(s.getMembers(), list))

def test_insert(self):
s = IntSet()
s.insert(1)
self.assertEqual(s.getMembers(), [1])
s.insert(2)
self.assertEqual(s.getMembers(), [1,2])

def test_member(self):
s = IntSet()
s.insert(1)
self.assertTrue(s.member(1))
self.assertFalse(s.member(2))

def test_remove(self):
s = IntSet()
s.insert(1)
self.assertTrue(s.member(1))
s.remove(1)
self.assertFalse(s.member(1))

def test_getMembers(self):
s = IntSet()
s.insert(1)
s.insert(2)
self.assertEqual(s.getMembers(), [1,2])

def test__str__(self):
s = IntSet()
s.insert(5)
s.insert(1)
s.insert(2)
self.assertEqual(s.__str__(), '{1,2,5}')

def tear_Down(self):
print('after Testing...')

if __name__ == '__main__':
unittest.main(argv=['ignored', '-v'], exit=False)