用python实现BDD

哪些是最先进的框架和工具可用于Python实践行为驱动开发? 特别是find类似的工具rspec和摩卡ruby将是伟大的。

Ian Bickingbuild议使用doctest进行行为驱动devise:

我个人倾向于在行为驱动的devise风格中使用鼻子和空隙空间模拟 。 具体来说,鼻子的规格插件是非常好的BDD。

生菜意味着成为python的黄瓜般的工具: http : //lettuce.it/

您可以从github.com/gabrielfalcao/lettuce获取源代码

我真的推荐performance 。

寻找一个黄瓜克隆的Python,我开始使用生菜,但发现它是一个非常笨重的devise复制品。 很Unpythonic。

然后我发现了行为,并且对此感到非常满意。

我build议你使用一套开发的工具来帮助程序员实践BDD和TDD。 这套工具由pycukes , specloud , ludibrio和should-dsl组成 。

应DSL将给你RSpec的期望。 您可以使用RSpec期望API来做的所有事情,应该是dsl也是。 你可以从Github获取最新版本 。

SpecLoud可以帮助您运行类似于BDD的unit testing。 你可以通过做安装

pip install specloud 

Ludibrio是一个testing双打(Mocks,Stubs和Dummies)的图书馆。 通过安装它

 pip install ludibrio 

PyCukes是BDD的主要工具。 它将运行场景等。再次,

 pip install pycukes 

欲了解更多信息,请阅读PyPi的工具文档。

伟大的职位和答案。 只是想更新,包括清新 ,因为我读pycukes已停产。 有关使用BDD和Django与Freshen的好post在这里 。

你可以使用“确定”来expression断言(就像在RSpec中一样)

Pyccuracy项目旨在为Python中的BDD提供一个特定领域的语言。

不同于在API级别工作的doctest,它编码更高级别的操作,例如加载网页和提交表单。 我没有使用它,但它看起来有点有希望,如果这是你在找什么。

我喜欢Pyccuracy很多。 我现在在一个中型项目上实施它。

尝试pyspecs 。 在开发过程中使testing易于阅读和持续运行是我在创build这个项目时的两个主要目标。

testing代码:

 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框架。 所以,继续使用标准库的unit testing。

编辑:一个快速谷歌在奶酪店发现 行为模块。 进一步寻找 BDD没有find其他的东西。