相等性测试的虚拟值

pystubs的Python项目详细描述


pystubs:相等性测试的伪值

这个小python模块提供了各种类型,可以用来检查 对于使用相等(==)测试的条件。例如,测试 数字小于5:

>>>fromstubsimport*>>>2==LessThan(5)True

完全等同于:

>>> 2 < 5
True

当比较嵌套容器时,这种方法非常方便,例如 api返回的json对象:

>>>expected_order={...'id':MatchesRegex('[0-9a-z]{10}'),...'quantity':GreaterThan(10),...'shippingAddress':Contains('Dublin'),...'deliveryDate':ANY,...'amount':InRange(200,500),...'items':Contains('apples')&...Contains('bananas')&...~Contains('pears'),...}>>>expected_order=={...'id':'cxw23fac3n',...'quantity':26,...'shippingAddress':'18 Some Street, Dublin, London',...'deliveryDate':'tomorrow',...'amount':300,...'items':[...'apples',...'avocados',...'bananas',...],...}True>>>expected_order=={...'id':'XXX',...'quantity':3,...'shippingAddress':'18 Some Other Street, New York City, USA',...'deliveryDate':'yesterday',...'amount':600,...'items':[...'apples',...'pears',...],...}False

这种方法在单元测试中非常有用,可以生成测试用例 更短更容易理解。

安装

pystubs没有外部依赖项。要安装它:

$ pip install pystubs

存根列表

泛型:

StubUsageEquivalent toNotes
ANY^{}^{}
PLACEHOLDER^{}^{}Meant to be used as a placeholder to be replaced at a later time
AnyOf^{}^{}
NoneOf^{}^{}

相等:

StubUsageEquivalent toNotes
Equal^{}^{}Useful when combined with other stubs
NotEqual^{}^{}

顺序:

StubUsageEquivalent toNotes
LessThan^{}^{}
LessThanOrEqual^{}^{}
GreaterThan^{}^{}
GreaterThanOrEqual^{}^{}
InRange^{}^{}

容器:

StubUsageEquivalent toNotes
Contains^{}^{}
HasSize^{}^{}
CountOf^{}^{}Works on any iterable, even those that don't support ^{}
HasItems^{}^{}

字符串:

这些函数同时作用于strbytes对象。

StubUsageEquivalent toNotes
StartsWith^{}^{}
EndsWith^{}^{}
MatchesRegex^{}^{}
ContainsRegex^{}^{}

类型和标识测试:

StubUsageEquivalent toNotes
Is^{}^{}
IsNot^{}^{}
InstanceOf^{}^{}

组合用存根

存根可以与|(or)、&(and)、^(exclusive or)和 ~(非)运算符。例如,以下存根表达式:

>>>'apple'==HasSize(5)&Contains('a')True

相当于表达式:

>>>len('apple')==5and'a'in'apple'True

许可证

pystubs放在公共域中。想做什么就做什么 它和/或它的源代码!

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

推荐PyPI第三方库


热门话题
java如何将字符串转换为自定义对象   java如何从socket方法获取数据?   Java中的soap读取回车和新行   java在单击时替换图像   java推荐的使用RXJava执行异步任务的方法   java MySql连接器JDBC驱动程序不支持连接池吗?   java将活动堆栈清理到顶部   java计数用户输入的数量   java从webservice下载大文件导致应用程序性能问题   JavaLocalDate。EPOCH不可用   java如何在使用Selenium等待一定时间后,在页面无法加载(get(url))时自动刷新页面   java Calendar setLenient方法不允许检查年份字段的健全性   java Eclipse和intelliJ 安卓 SDK问题   java为什么我可以在没有super关键字的情况下调用父方法?   java iText的PDF格式不好