简单规范测试框架
expecthon的Python项目详细描述
期待
Status | |
Main | |
Develop | |
python规范测试框架。这样做的目的是帮助使测试的可读性 有可能,用自然语言编写测试。它包装了内置设备 单元测试模块。在
要求
支持*Python>;=3.7
安装
pip install expecthon
示例
例子复杂多样。在
简单
一个非常简单的例子
fromexpecthonimportexpect,thatexpect(that(5+5).equal(10))
与常规测试不同,您可以同时测试多个东西,使 调试更容易,因为您不只是得到第一个失败的断言,而是 (如果你愿意的话)
^{pr2}$这将引发一个显示两个错误的失败断言。在
列表
有时,您有一个大的元素列表,您想测试 这些元素符合某些规则。这可以通过以下方式实现:
fromexpecthonimportexpect,that,that_number,that_listdefvalue_that_is_positive(value):returnthat_number(value).is_positive()expect(that_list([-1,-2,1,-3]).has_any(value_that_is_positive))
阴性试验
有时,您确实想测试某个东西是而不是的情况。这主要是 与开发此框架相关,正如您所希望的那样 提供一个所谓的negative test。框架处理 方法如下:
withnegative_test():expect(that(1).equals(2))
扩展测试
测试框架本质上非常简单,建议您添加 更多与你相关的假设。下面是一个简短的扩展示例:
这里我将提供一个简短的例子,假设您有一个类:
人.py
fromdataclassesimportdataclass@dataclassclassPerson:first_name:strlast_name:strage:int
添加更多Assumptions
假设是that
函数后面的类。请创建
所有这些都放在名为assumptions.py
的文件中(可能在前面加上
上下文)
classPersonAssumption(BaseAssumption[Person]):defis_older_than(self,other_person:Person):returnself._add_result(assuming(self._value.age>other_person.age).else_report(f"{self._value} is not older than {other_person}"))defthat_person(person:Person):returnPersonAssumption(person)
路线图
- Django的助手
- 支持函数模拟
- 将
lambda x; that(x).something()
传入has_any
等的聪明方法
- 项目
标签: