python振る舞い駆動開発を実践するために利用できる最も高度なフレームワークとツールはどれですか?特に、Ruby 。
Ian Bicking 振る舞い駆動の設計には doctest の使用を推奨します。
私は個人的に nose と voidspace mock を振る舞い駆動型のデザインスタイルで使用する傾向があります。特に、鼻の仕様 plugin はBDDに最適です。
レタスは、Python用のキュウリのようなツールであることを意味します。 http://lettuce.it/
Github.com/gabrielfalcao/lettuceでソースを取得できます
behave をお勧めします。
Python用のCucumberクローンを探して、レタスを使い始めましたが、かなり不器用に設計されたレプリカであることがわかりました。非常に素朴です。
それから私は振る舞いを発見し、それに本当に満足しています。
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 にあるツールのドキュメントをご覧ください。
表現力豊かなアサーションに "sure" を使用できます(RSpecと同様)。
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フレームワークを取得できます。それでは、標準ライブラリの nittest を使用してください。
編集:クイックグーグルは、 BehaviourCheese Shop のモジュールを見つけました。さらに 検索 BDDについては、他に何も見つかりませんでした。