ビヘイビア駆動開発を実践するためにPythonで利用できる最も高度なフレームワークとツールはどれですか?特に、ルビー用のrspecおよびmochaと同様のツールを見つけることは素晴らしいことです。
ビヘイビア駆動開発を実践するためにPythonで利用できる最も高度なフレームワークとツールはどれですか?特に、ルビー用のrspecおよびmochaと同様のツールを見つけることは素晴らしいことです。
回答:
Ian Bickingは、ビヘイビア主導の設計にdoctestを使用することを推奨しています。
私は個人的に、振る舞い主導の設計スタイルで鼻とボイドスペースのモックを使用する傾向があります。具体的には、鼻のスペックプラグインはBDDに最適です。
レタスは、Pythonのキュウリのようなツールであることを意味します。http://lettuce.it/
ソースはgithub.com/gabrielfalcao/lettuceで入手できます。
Python用のCucumberクローンを探していたところ、レタスの使用を開始しましたが、かなり不器用に設計されたレプリカであることがわかりました。非常に非Pythonic。
それから私は振る舞いを発見し、それにとても満足しています。
BDDおよびTDDの実践においてプログラマーを支援するために開発されたツールのセットを使用することをお勧めします。:このツールセットは、によって構成されてpycukes、specloud、ludibrioとすべきである、DSL。
Should-DSLはRSpecのような期待を与えます。RSpec期待APIでできることはすべて、should-dslでもできます。Githubから最新バージョンを入手できますます。
SpecLoudは、BDDのような単体テストの実行を支援します。あなたはそれをインストールすることができます
pip install specloud
Ludibrioはテストダブルス(モック、スタブ、ダミー)のライブラリです。経由でインストール
pip install ludibrio
そして、PyCukesはBDDのメインツールです。シナリオなどを実行します
pip install pycukes
Pyccuracyプロジェクトは、PythonのBDDにドメイン固有の言語を提供する取り組みです。
APIレベルで機能するdoctestとは異なり、Webページのロードやフォームの送信などの高レベルの操作をエンコードします。私はそれを使用していませんが、それがあなたが探しているものである場合、それはやや有望に見えます。
私は好きPyccuracyたくさん。私は最近、中規模プロジェクトにそれを実装しています。
試してみてくださいpyspecsを。テストを読みやすくし、開発中に常に実行することは、このプロジェクトを作成する上での私の2つの主要な目標でした。
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フレームワークを取得できます。したがって、先に進んで標準ライブラリのユニットテストを使用してください。
編集:簡単なグーグルがチーズ屋の行動モジュールを表示しました。さらに検索 BDDのためには、何かが見つけられませんでした。