Kerangka kerja dan alat mana yang paling canggih yang tersedia untuk python untuk mempraktikkan Behaviour Driven Development? Terutama menemukan alat yang mirip dengan rspec dan mocha untuk ruby akan sangat bagus.
Kerangka kerja dan alat mana yang paling canggih yang tersedia untuk python untuk mempraktikkan Behaviour Driven Development? Terutama menemukan alat yang mirip dengan rspec dan mocha untuk ruby akan sangat bagus.
Jawaban:
Ian Bicking merekomendasikan penggunaan doctest untuk desain yang didorong oleh perilaku:
Saya pribadi cenderung menggunakan mock hidung dan voidspace dalam gaya desain yang didorong oleh perilaku. Secara khusus, plugin spec untuk hidung sangat bagus untuk BDD.
Selada artinya menjadi alat seperti mentimun untuk python: http://lettuce.it/
Anda dapat mengambil sumbernya di github.com/gabrielfalcao/lettuce
Saya sangat merekomendasikan berperilaku .
Mencari klon Timun untuk Python, saya mulai menggunakan selada, tetapi menemukan itu replika yang dirancang dengan canggung. Sangat unpythonic.
Kemudian saya menemukan perilaku, dan sangat senang dengan itu.
Saya merekomendasikan Anda untuk menggunakan seperangkat alat yang dikembangkan untuk membantu programmer dalam praktik BDD dan TDD. Kumpulan alat ini disusun oleh: pycukes , specloud , ludibrio dan should-dsl .
Seharusnya-DSL akan memberi Anda harapan seperti RSpec. Segala sesuatu yang dapat Anda lakukan dengan API harapan RSpec, seharusnya-dsl juga. Anda dapat mengambil versi terbaru dari Github .
SpecLoud membantu Anda menjalankan unitest yang mirip BDD. Anda dapat menginstalnya dengan melakukan
pip install specloud
Ludibrio adalah perpustakaan untuk tes ganda (Mocks, Stubs and Dummies). Pasang melalui
pip install ludibrio
Dan PyCukes adalah alat utama untuk BDD. Ini akan menjalankan Skenario, dll. Sekali lagi,
pip install pycukes
Untuk info lebih lanjut silakan baca dokumentasi alat di PyPi .
Anda dapat menggunakan "yakin" untuk pernyataan ekspresif (seperti di RSpec)
Proyek Pyccuracy adalah upaya untuk menyediakan bahasa khusus domain untuk BDD dengan Python.
Tidak seperti doctest, yang bekerja pada level API, ia mengkodekan operasi level yang lebih tinggi seperti memuat halaman web dan mengirimkan formulir. Saya belum pernah menggunakannya tetapi terlihat agak menjanjikan jika itu yang Anda cari.
Saya sangat menyukai Pyccuracy . Saya menerapkannya pada proyek ukuran sedang hari ini.
Coba pyspecs . Membuat tes mudah dibaca dan terus berjalan selama pengembangan adalah dua tujuan utama saya dalam menciptakan proyek ini.
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)
Saya mungkin benar-benar hilang titik, tapi apa yang saya ditahan dari kertas BDD asli adalah bahwa BDD hanya TDD dikemas ulang untuk menekankan beberapa praktek terbaik.
Jika interpretasi saya benar, Anda bisa mendapatkan kerangka BDD hanya dengan mengganti nama metode di dalam implementasi xUnit . Jadi silakan saja dan gunakan perpustakaan standar unittest .
EDIT: Google cepat menghasilkan modul Perilaku di Toko Keju . Pencarian lebih lanjut untuk BDD tidak menemukan apa pun.