简单规范测试框架

expecthon的Python项目详细描述


期待

StatusPyPi - Versionsupported-versionsPyPI - StatusLibraries.io SourceRankPyPI - LicenseTest package
MainQuality Gate StatusCoverageCode SmellsVulnerabilities
DevelopQuality Gate StatusCoverageCode SmellsVulnerabilities

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等的聪明方法

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaJSonarray不会从SeekBar读取double   使用另一个类从Java中的2D数组打印用户输入   java ClassNotFoundException的原因   spring调用两个方法以返回Java中的不同页面   httpurlconnection Java禁止的代码错误,但浏览器错误(2)   java画布矩阵转换   java:在另一个java映射中使用“Map”作为值   java“未找到用于解密的证书”(Apache CXF,WSSecurity)   java如何查看JTable中选择的行   java在没有xmlwrappers的情况下重复xml元素序列集   java将垂直直方图打印到控制台   java Spring JDBCTemplate:构造不带特殊字符的JSON   java PayPal RestApi获取用户信息