python中比较/断言表达式的替代语法。支持用于自定义比较的可插入匹配器。
compare的Python项目详细描述
概述
compare是一个紧凑的实用程序,它提供了一个替代的、有表现力的 比较数据值的语法。你一直在寻找逃跑的机会吗 从陈腐的许尼特风格断言,瘟疫无处不在的存在unittest? 你可能已经找到了你需要的东西。我请你看看这个 没什么用处。如果它适合你的风格,你可以把它作为一个附加服务 替换python中“self.assert…”风格的断言。
compare api公开了expect构造,该构造允许 将值与可读和可扩展语法进行比较。它是设计的 作为独立的可选断言语法。因此你可以使用它 就像你最喜欢的测试/规范框架一样。
文档:http://packages.python.org/compare
项目源代码:https://github.com/rudylattae/compare
pypi页:http://pypi.python.org/pypi/compare
功能
- 提供用于比较值的基本匹配项集
- 使用自定义匹配器易于扩展
- 打包为一个下拉式模块
要求
compare的核心实现是一个没有 除了Python Standard Library之外的其他要求。
安装
安装compare的最简单且推荐的方法是使用pip。您可以安装 pypi的最新稳定版本,带有pip:
> pip install compare
如果您没有PIP,可以使用Easy_安装:
> easy_install compare
或者,您可以从compare page on PyPI下载源包, 提取并使用以下命令安装:
> python setup.py install
如果你愿意,你可以抓住发展中的(前沿但不稳定) 版本compare.py来自项目存储库,并将其放入您的项目目录中。
你得到的
安装包时,您将获得“expect”启动程序,一个简单的 函数,允许您比较两个值,如果结果是 不符合你的期望。这个启动程序有可扩展的匹配器 使您能够以pythonic bdd的方式描述预期的结果。
当你在制定可执行的规范时,比较是最亮的 你的软件。它有助于你保持思想的流动而不屈服于 像“self.assertequal(s)…”这样的测试集中的非pythonic分布, “self.asserttrue”等
下面是一个小例子,说明当您 在规范中使用“expect”构造。
>;cat hello.py:
greeting = 'Hello you'
>;cat hello_specs.py:
from compare import expect import hello expect(hello.greeting).to_equal('Hello you')
如果定义了一个未满足的期望,则会出现“未满足的期望”错误 它继承自python断言错误,因此它与通常的unittest兼容。 工具。下面是这样一个错误的示例:
>>> from compare import expect >>> opts = ['foo', 'bar', 'baz'] >>> expect(opts).to_contain('BAT') Traceback (most recent call last): ... UnmetExpectation: Expected ['foo', 'bar', 'baz'] to contain 'BAT'
缺少什么
expect语法还没有一个干净的方法来否定匹配器。这个功能是 计划下一个版本。预期用途示例:
expect(['a', 'c', 'd']).NOT.to_contain('b')
to_return匹配器不接受传递给可调用的任何参数。
匹配器不接受自定义失败消息。
反馈
我欢迎任何关于bug的问题或反馈,以及关于如何 改进比较。让我知道你对比较的看法。我在推特上 @RudyLattae。我欣赏建设性的 临界值或高五度:)
你有改进的建议吗?那么请create an issue详细说明 你想看的东西。我会看一看然后和你一起去杀 想法或实现它。
更改日志
0.2b–2011年2月11日
- 首次公开测试版
- 增加了基本匹配者:小于,小于或等于,大于,大于或等于ISE
- 添加了“丰富比较”匹配项:==,<;,<;=,>;,>;=
- 文档:核心api+简单用户指南。
0.1a–2011-02-01
- 首次公开发行alpha