Test ve Spec arasındaki farklar


12

Ben bu noktada bir kavram sorunu yaşıyorum ve Test (UnitTest, vb) vs Spec (Rspec, vb) arasındaki farklar hakkında herhangi bir bilgi bulamıyorum.

Bildiğim kadarıyla, specler Entegrasyon testlerine giriyor ve test UnitTest'e giriyor ama sadece bu.

Farklılıkların ne olduğunu açıklayabilir misiniz?

Yanıtlar:


12

Aşağıdaki şemaya bakın. Test Odaklı Geliştirme (TDD) ve Kabul Testine Dayalı Geliştirme (ATDD) arasındaki ilişkiyi gösterir:

Kabul Testine Dayalı Geliştirme diyagramı

İç ilmeğin (TDD), dış ilmeğin (ATDD) sarıldığına dikkat edin. Gereksinimler (Kabul Kriterleri kutusuyla gösterilmiştir), otomatik kabul testlerinin oluşturulmasını yönlendirir ve bu da uygulama için Birim Testlerinin oluşturulmasını sağlar.

Genel olarak RSpec, testleri Business Analyst dostu bir şekilde, yani otomatik kabul testlerinin (tan daire) oluşturulması; oysa nUnit gibi Birim Testi çerçeveleri, geliştiricinin TDD perspektifinden uygulama düzeyinde (sarı daire) yazılmış olan birim testleri için daha uzmanlaşmıştır.


İyi bir örnek, bir karma tablodur, bu, kabul testlerindeki sadece küçük örnek kümesi için değil, tüm olası girdiler için çalışacağı beklendiği için ayrıntılı birim testlere ihtiyaç duyar. Bununla birlikte, “iyi” bir müşteri için indirimi hesaplayan kodun kabul testleriyle iyi karşılanabileceğinden, hiçbir veya birkaç birim test gerektirmeyebilir.
Ian

3

tamam burada farklı terimlerimiz var, işte neler oluyor

  • Birim Testimiz var. Diğer seviyeler entegrasyon testi, performans testi vb.
  • rspec, yukarıdaki test seviyelerinin çoğunda, örneğin modellere, denetleyicilere ve görünümlere Capybara özellik testleri yoluyla kullanılabilir.
  • 'spec' kelimesi bir testin kalbindeki spesifikasyondan gelir - bir şey belirtir.
  • rspec - Ruby on Rails uygulamalarında sıklıkla kullanılan agaist tarayıcıları test etmek için kullanılan bir çerçeve.
  • spec dosyaları - rspec dosyası genellikle _spec.rb ile biter ve genellikle spec dosyaları olarak adlandırılır.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.