python 单元测试 pytest 学习。

 

我之前没用过测试,今天需要就学习了一下。

首先安装pytest

pip install pytest

文件名是 bag_adt.py

 1 # -*- coding:utf-8 -*-
 2 class Bag(object):
 3     def __init__(self, maxsize = 10):
 4         self.maxsize = maxsize
 5         self._items = list()   # 容器是 list
 6 
 7     def add(self, item):
 8         if len(self) > self.maxsize:
 9             raise Exception ("Bag is full")
10         self._items.append(item)
11 
12         
13 
14     def remove(self, item):
15         self._items.remove(item)
16 
17 
18 
19     def __len__(self):
20         return len(self._items)     # 返回数据长度
21 
22 
23     def __iter__(self):
24         for item  in self._items:
25             yield item                 # 这是一个生成器, 每次生成一个值,在内部调用next
26 
27 
28 def test_bag():
29     bag = Bag()
30 
31     bag.add(1)
32     bag.add(2)
33     bag.add(3)
34 
35     assert len(bag) == 3
36 
37     bag.remove(3)
38     assert len(bag) == 2
39 
40     for i in bag:
41         print(i)
42 
43 test_bag()

 

在 pytest 中案例的最小单位是函数/类,只要按照一定的命名规范即可:
测试文件以test_开头(以_test结尾也可以)
测试类以Test开头,并且不能带有 __init__ 方法
测试函数以test_开头

35 行用的是断言
相等关系:assert 1 == 1    还有:>=,<=,!=,<,>
包含关系:assert h in hell 还有:not in
布尔值:  assert 函数(参数)  比如:assert  素数(判断是否素数的参数)

然后在终端输入 pytest bag_adt.py

 

 

 

 

 

posted @ 2018-12-19 17:55  DRQ丶  阅读(223)  评论(0编辑  收藏  举报