Son zamanlarda, Salatalık Rails topluluğunda daha fazla destek alıyor gibi görünüyor. İşte RSpec'in öncülüğüyle (eski bir Ruby on Rails Podcast'tan) yapılan bir röportajdan duyduğum kısaca tartışma.
Çevik toplulukta (o sırada), bir şeyi değiştirmek zorunda olduğunuzu kanıtlamak için önce teste önem vererek Test Odaklı Gelişim için büyük bir baskı vardı. Bunda felsefi olarak yanlış bir şey vardı. Özünde, test, uygulamanızın doğru olduğunu doğrulamanın bir yoludur, bu nedenle sürüş tasarımı hakkında nasıl farklı düşünüyorsunuz? RSpec'in öncülü ilk önce belirttiğinizi tahmin etti ve şartname uygulamanızın sonuçlarını da kontrol ettiyse harika olmaz mıydı?
Basit yeniden adlandırma assert
, should
spesifikasyonları yazmak ve tasarımı düşünmek için zihni doğru şekilde odaklamaya yardımcı olur. Ancak, bu denklemin sadece bir parçası.
Daha da önemlisi, birçok TDD beleisti testlerin tasarımı belgelediğini iddia ettiğinden, çoğu dokümantasyon en iyi ihtimalle zayıftı. Testler, dili bilmeyen geliştirici olmayanlar için oldukça opaktır. O zaman bile, tasarım çoğu testi okumaktan hemen belli değil.
Dolayısıyla ikincil bir hedef olarak, RSpec şartnamelerden yazılı dokümantasyon üretmenin bir yolunu tasarladı. RSpec'e bir uygulamanın tasarımını yönlendirmek için basit Test :: Unit'e üstünlük sağlayan bu yazılı şartnamedir. Tasarım tutarlılığını aynı anda belgeleyip doğrulayabildiğinizde neden birden fazla şey yazmalısınız?
Anladığım kadarıyla, daha sonra gelip RSpec'ten ders öğrenmenin faydası olan Salatalık, birincil hedefi kaybetmeden (uygulamayı şartnameden test etme yeteneği) bu ikincil hedefte daha iyi bir iş çıkarıyor. Salatalık bunu, programcı olmayanların makul bir şekilde yapabileceği oldukça İngilizce benzeri bir API ile yapar. Yeni doğrulama yöntemlerinin bazı tanımlarını doldurmak için programcılardan biraz yardıma ihtiyaçları olabilir, ancak genişletilebilir olarak tasarlanmıştır.
Sonuç olarak, RSpec / Salatalık birim testini tamamen değiştirmemelidir. Tasarımınızı belgelemek ve doğrulamak için daha uygun olabilirler - ancak yine de yapılması gereken birkaç uygulama testi vardır, özellikle uygulamanın tasarımından değil, uygulamadan kaynaklanan ince hatalarla. Yine de yazmanız gereken test sayısını azaltır.