问题:用python练习BDD [关闭]
python有哪些最先进的框架和工具可用于实践行为驱动开发?尤其是找到与rspec和mocha类似的工具来进行红宝石搜索将是很棒的。
回答 0
Ian Bicking建议将doctest用于行为驱动的设计:
回答 1
生菜意味着要成为类似python的黄瓜类工具:http://lettuce.it/
您可以在github.com/gabrielfalcao/lettuce上获取源代码
回答 2
回答 3
我建议您使用开发的一组工具来帮助程序员进行BDD和TDD的实践。该工具集由pycukes,specloud,ludibrio和should-dsl组成。
Should-DSL将给您类似RSpec的期望。您可以使用RSpec期望API进行的所有操作,should-dsl也可以。您可以从Github获取最新版本。
SpecLoud帮助您进行类似BDD的单元测试。您可以通过执行安装
pip install specloud
Ludibrio是一个用于测试双打(假人,存根和假人)的库。通过安装
pip install ludibrio
而PyCukes是BDD的主要工具。它将运行场景,等等。再次,
pip install pycukes
有关更多信息,请阅读PyPi上的工具文档。
回答 4
回答 5
您可以将“ sure”用于表达性断言(就像在RSpec中一样)
回答 6
Pyccuracy项目致力于为Python中的BDD提供特定领域的语言。
与在API级别上工作的doctest不同,它对更高级别的操作进行编码,例如加载网页和提交表单。我没有使用过它,但是如果您正在寻找它,它看起来很有希望。
回答 7
我非常喜欢Pyccuracy。这些天,我正在一个中型项目中实现它。
回答 8
试用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)
回答 9
我可能完全忘记了这一点,但是我保留的原始BDD论文是BDD只是重新包装了TDD,以强调一些最佳实践。
如果我的解释是正确的,则只需在任何xUnit实现中重命名方法即可获得BDD框架。因此,只需继续使用标准库的unittest即可。