2013-04-19 26 views
13

Scalatest ve spock nasıl farklılıklar gösterir? her birinin katma değeri nedir? Behavior Driven Development (BDD) için hangisi daha çevik? Lütfen konuyla ilgili bazı düşüncelerinizi paylaşır mısınız?ScalaTest ve Spock karşılaştırması

BDD'yi başlatmak istiyorum, ikisi arasında bir tane seçmek istiyorum, bu yüzden eğitimli bir karar vermek istiyorum. Bu nedenle, özellikle bir java programcısı olduğum ve bu skalanın önemli olan bir öğrenme eğrisine sahip olduğu göz önüne alındığında, öncelikle maksimum bilgiyi alırım.

Herhangi bir öneri veya fikir veya deneyimlerden dönüş memnuniyetle karşılanacaktır.

çok teşekkürler Özetle

cevap

23

, ben Scala kodu test etmek için ScalaTest kullanmayı tavsiye ve test Java veya Groovy kodu Spock olacaktır. (Elbette, Java kodunun ScalaTest ile test edilmesi de mükemmel bir şekilde mümkündür.) Neden her iki araca da daha rahat edebileceğiniz bir vuruş ve sopa vermiyorsunuz?

Yasal Uyarı: Ben Spock'in yaratıcısıyım.

+0

Cevabınız için çok teşekkürler, her ikisini de deneyeceğim. – MaatDeamon

+1

Peter burada çok cömert davranıyor. Spock'in özellikleri şüphesiz bir şüphe gölgesi olmadan, benim için tüm test çerçevelerini toza bırakır. Bunu söyledikten sonra, eğer Spock Scala'nın test çerçevesi olarak çalışabilirse, yorum yazabilirdi, çünkü Spock'in özelliğinin derleyici bağımlı olduğunu söyleyen eski bir yazı okudum. – Beezer

3

Peter'ın cevabını kabul etmeme rağmen, bu konuya bakış açımı vermek istiyorum.

Hem ScalaTest hem Spock, akıcı BDD testi sağlar. Bununla birlikte, Spock'in en iyi özelliğinin, birden çok veri seti ve beklenen sonuçlarla tek senaryo oluşturmak için yapabileceğiniz olduğunu görüyorum. Bu, Salatalık Senaryosu Çizgisi'ne çok benzer, sadece birim test seviyesinde çalışır.

Bunu yapan başka birim sınama çerçevesi/kitaplığı bulamıyorum. Özetle, tek bir test senaryosu için çoklu giriş/çıkış test etmeniz gerekiyorsa, Spock'i ​​kullanın, aksi takdirde, kendinizi rahat hissettiğiniz herşeyi seçmekten çekinmeyin.

+0

https://github.com/junit-team/junit4/wiki/parameterized-tests aynı bütünlük için, jUnit aynı şeyi yapabilir, sadece çirkin –

+0

Bunu düşünmüyorum, parametreli test sadece izin verecek Birim test sınıfı başına maksimum tek senaryo (yapılandırıcı parametreli olarak). Parametrelenmiş alan üzerinde daha fazla alabilirsiniz, ancak sadece çirkinleşmek için. – Wins

+0

Katılıyorum. Sadece teorik olarak, jUnit _does_ bu özelliğe sahipken, çirkinlik faktörü onu pratikte neredeyse oralarda kullanmak için neredeyse hiç zorlamayan bir şey değildir. –