Davranış Odaklı Gelişim uygulamak için python için mevcut en gelişmiş çerçeveler ve araçlar hangileridir? Özellikle yakut için rspec ve mocha gibi benzer araçlar bulmak harika olurdu.
Davranış Odaklı Gelişim uygulamak için python için mevcut en gelişmiş çerçeveler ve araçlar hangileridir? Özellikle yakut için rspec ve mocha gibi benzer araçlar bulmak harika olurdu.
Yanıtlar:
Ian Bicking doctest kullanmanızı önerir davranış odaklı tasarım için :
Ben şahsen davranış odaklı bir tasarım tarzında burun ve boşluk taklidi kullanma eğilimindeyim . Özellikle, burun için spec eklentisi BDD için mükemmeldir.
Marul, python için salatalık benzeri bir araç anlamına gelir: http://lettuce.it/
Kaynağı github.com/gabrielfalcao/lettuce adresinden alabilirsiniz.
Gerçekten davranmayı tavsiye ederim .
Python için bir salatalık klonu arıyorum, marul kullanmaya başladım, ancak oldukça beceriksizce tasarlanmış bir kopya buldum. Çok Unpythonic.
Sonra davrandığımı keşfettim ve çok mutlu oldum.
BDD ve TDD uygulamalarında programcılara yardımcı olmak için geliştirilmiş bir dizi araç kullanmanızı öneririm. Bu araç seti aşağıdakilerden oluşur: pycukes , specloud , ludibrio ve should-dsl .
Should-DSL size RSpec benzeri beklentiler verecektir. RSpec beklenti API'si ile yapabileceğiniz her şey, dsl de yapmalıdır. En son sürümü Github'dan alabilirsin .
SpecLoud , BDD benzeri birim testleri çalıştırmanıza yardımcı olur. Yaparak kurabilirsiniz
pip install specloud
Ludibrio , test çiftleri için bir kütüphanedir ( Alaylar , Saplamalar ve Aptallar). Yoluyla yükleyin
pip install ludibrio
Ve PyCukes BDD için ana araçtır. Senaryoları, vs. çalıştıracak. Yine,
pip install pycukes
Daha fazla bilgi için lütfen PyPi'deki araç belgelerini okuyun .
Etkileyici iddialar için "emin" kullanabilirsiniz (tıpkı RSpec'de olduğu gibi)
Pyccuracy projesi Python'da BDD için alana özgü bir dil sağlama çabasıdır.
API düzeyinde çalışan doctest'in aksine, web sayfası yükleme ve form gönderme gibi üst düzey işlemleri kodlar. Kullanmadım ama aradığınız şey bu ise biraz umut verici görünüyor.
Pyccuracy'i çok seviyorum . Bugünlerde orta büyüklükte bir projeye uyguluyorum.
Pyspec'leri deneyin . Testleri okumayı kolaylaştırmak ve geliştirme sırasında sürekli çalıştırmak, bu projeyi oluşturmamdaki temel hedeflerimdendi.
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)
Muhtemelen bu noktayı tamamen özlüyorum, ancak orijinal BDD kağıdında tuttuğum şey, BDD'nin sadece TDD olmasıydı en iyi uygulamaları vurgulamak için yeniden paketlenmiş .
Yorumum doğruysa, sadece herhangi bir xUnit uygulamasında yöntemleri yeniden adlandırarak bir BDD çerçevesi alabilirsiniz . Öyleyse devam edin ve standart kütüphanenin unittest'ini kullanın .
EDIT: Hızlı bir google peynir dükkanında bir davranış modülü döndü . BDD'yi daha fazla aramak başka bir şey bulamadı.