CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
jackfrued

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: jackfrued/Python-100-Days
Path: blob/master/Day16-20/code/test_example01.py
Views: 729
1
"""
2
单元测试 - 针对程序中最小的功能模块(函数和方法)的测试
3
测试方法:
4
- 白盒测试:程序自己写的测试
5
- 黑盒测试:测试人员或QA,不知道代码实现细节,只关注功能
6
编写Python单元测试 - 定义类继承TestCase,写测试方法(test_开头)
7
执行单元测试:
8
- unittest.main()
9
- python3 -m unittest test_example01.py
10
第三方库 - nose2 / pytest
11
pip install pytest pytest-cov
12
pytest -v --cov
13
------------------------------
14
pip install nose2 cov-core
15
nose2 -v -C
16
"""
17
from unittest import TestCase
18
19
from example01 import seq_search, bin_search
20
21
22
class TestExample01(TestCase):
23
"""测试查找函数的测试用例"""
24
25
# 执行每个测试函数之前要执行的方法
26
def setUp(self):
27
self.data1 = [35, 97, 12, 68, 55, 73, 81, 40]
28
self.data2 = [12, 35, 40, 55, 68, 73, 81, 97]
29
30
# 执行每个测试函数之后要执行的方法
31
def tearDown(self):
32
pass
33
34
def test_seq_search(self):
35
"""测试顺序查找"""
36
self.assertEqual(0, seq_search(self.data1, 35))
37
self.assertEqual(2, seq_search(self.data1, 12))
38
self.assertEqual(6, seq_search(self.data1, 81))
39
self.assertEqual(7, seq_search(self.data1, 40))
40
self.assertEqual(-1, seq_search(self.data1, 99))
41
self.assertEqual(-1, seq_search(self.data1, 7))
42
43
def test_bin_search(self):
44
"""测试二分查找"""
45
self.assertEqual(1, bin_search(self.data2, 35))
46
self.assertEqual(0, bin_search(self.data2, 12))
47
self.assertEqual(6, bin_search(self.data2, 81))
48
self.assertEqual(2, bin_search(self.data2, 40))
49
self.assertEqual(7, bin_search(self.data2, 97))
50
self.assertEqual(-1, bin_search(self.data2, 7))
51
self.assertEqual(-1, bin_search(self.data2, 99))
52
53