python 有哪些最先进的框架和工具可用于实践行为驱动开发?尤其是为 ruby 找到与 rspec 和 mocha 类似的工具会很棒。
10 回答
Lettuce的意思是成为python的类似黄瓜的工具:http: //lettuce.it/
您可以在 github.com/gabrielfalcao/lettuce 获取源代码
Ian Bicking建议使用doctest进行行为驱动设计:
我推荐你使用一套工具来帮助程序员进行 BDD 和 TDD 的实践。该工具集由:pycukes、specloud、ludibrio和should-dsl组成。
should-DSL会给你类似 RSpec 的期望。你可以用 RSpec 期望 API 做的所有事情,should-dsl 也可以。您可以从 Github获取最新版本。
SpecLoud可帮助您运行类似 BDD 的单元测试。您可以通过执行安装它
pip install specloud
Ludibrio是一个用于测试替身(Mocks、Stubs 和 Dummies)的库。通过安装它
pip install ludibrio
而PyCukes是 BDD 的主要工具。它将运行场景等。再次,
pip install pycukes
有关更多信息,请阅读PyPi上的工具文档。
您可以将“确定”用于表达性断言(就像在 RSpec 中一样)
Pyccuracy 项目旨在为 Python 中的 BDD 提供特定领域的语言。
与在 API 级别工作的 doctest 不同,它对更高级别的操作进行编码,例如加载网页和提交表单。我没有使用它,但如果这是您正在寻找的东西,它看起来很有希望。
我非常喜欢Pyccuracy。这些天我正在一个中型项目上实施它。
试试pyspecs。使测试易于阅读并在开发过程中持续运行是我创建这个项目的两个主要目标。
测试代码:
from pyspecs import given, when, then, and_, the, this
with given.two_operands:
a = 2
b = 3
with when.supplied_to_the_add_function:
total = a + b
with then.the_total_should_be_mathmatically_correct:
the(total).should.equal(5)
with and_.the_total_should_be_greater_than_either_operand:
the(total).should.be_greater_than(a)
the(total).should.be_greater_than(b)
with when.supplied_to_the_subtract_function:
difference = b - a
with then.the_difference_should_be_mathmatically_correct:
the(difference).should.equal(1)
控制台输出:
# run_pyspecs.py
| • given two operands
| • when supplied to the add function
| • then the total should be mathmatically correct
| • and the total should be greater than either operand
| • when supplied to the subtract function
| • then the difference should be mathmatically correct
(ok) 6 passed (6 steps, 1 scenarios in 0.0002 seconds)
我可能完全没有抓住重点,但我保留的原始 BDD 论文是 BDD 只是TDD重新打包以强调一些最佳实践。
如果我的解释是正确的,您可以通过在任何xUnit实现中重命名方法来获得 BDD 框架。所以继续使用标准库的unittest。
编辑:快速谷歌在Cheese Shop中发现了一个Behavior模块。进一步搜索BDD 没有找到其他任何东西。