2012-08-28 35 views
5

Şu anda sunucu tarafında Sinatra Ruby ve istemci tarafında Backbone.js, jQuery, jQuery UI kullanarak tek bir sayfa javascript uygulaması geliştiriyorum. Uygulama ana amacı, bir müşterinin farklı türdeki öğeleri görüntülemesine/düzenlemesine izin vermektir; her öğe görünümü az çok karmaşık bir formdur.Tek sayfalık uygulamalar için javascript entegrasyon testi

  • üniter testler QUnit
  • işlevsel/entegrasyon testleri çerçeveler/araçları entegrasyon test için tavsiye edersiniz ne

kullanarak:

her şeyin doğru yapmam gereken planlıyorum çalışır hale getirmek için bu durum ? Selenium ile başladım ama çok sevmedim. Ben sadece PhantomJS ve CasperJS bakmaya başladı ve onlar gezinme, bağlantılar tıklayarak, temel şeyler için oldukça güzel görünüyorlar ...

Senin tavsiyen nedir?

cevap

1

Selenium hakkında hoşunuza gitmediğini söylemediniz, ama sanırım JavaScript'le güvendiniz, bu yüzden benim önerim CasperJS'u ana araç olarak kullanmak olacaktır. Tek sayfalık web uygulamaları ile iyi çalışır ve kendi test aracıyla birlikte gelir. Iç içe geçmiş wait cümleleri kullanırken, kod bazen biraz kıvrık alabilirsiniz; Her testte fazla çaba göstermediğinizden emin olun ve sonra hala karmaşıksa, refactor. Ve test için tasarım yapmayı unutma: Seçiciniz aşırı derecede karmaşıksa, etrafınıza bir <span id="xxxx">...</span> eklemeyi düşünün, böylece testleriniz doğrudan ona gidebilir!

CasperJS'yi hem PhantomJS hem de SlimerJS ile kullanabilirsiniz.

  • PhantomJS 1.x yüzden artık modern özellikler sinir bozucu olduğu test (Safari 5.1 ve Chrome 13 eşdeğeri) eski WebKit yapıştı: My tercihi olarak, şu anda SlimerJS içindir.
  • SlimerJS, Gecko motoruyla veya doğrudan yüklediğiniz bir Firefox sürümü ile çalışabilir. Bu, eklentiler, güvenlik sertifikaları vb. Ile bir Firefox profili yapılandırmanıza olanak tanır.
  • SlimerJS, JavaScript'te yazılmıştır, ihtiyacınız varsa, kesmek daha kolaydır.

kez 2.0 (umarım 2013 sonuna civarında) çıkar PhantomJS veya siteniz herhangi yeni HTML5 API'ler itimat etmezse çift kapsama almak için iki kez CasperJS çalıştırabilirsiniz. (BTW, PhantomJS doğal başsız olduğu; SlimerJS sadece Linux veya Mac olan Xvfb kullanması gerekir.) Selenium ekstra verir Diğer tarayıcılar, özellikle IE kontrol edebilirsiniz nedir

. (Elbette IE için bir Windows makinesini çalıştırmanız gerekir.) Selenyum, SlimerJS gibi, Xvfb'nin başsız olmasını ister (Windows hariç). (BTW, Selenium docs on supported browsers çağlarda güncellenmemiştir, ancak her tarayıcının sonraki sürümlerinin en azından orada gösterilen destekle aynı olduğunu varsayıyorum.)

+0

Selenium'a karşı ilk nokta hızıdır. Bu çok yavaş. – user337620

+0

@ user337620 Selenyum komut dosyalarına ağ erişimi hakim, bu yüzden onları başlatma dışında asla yavaş algılamamıştım. Sadece geçen yıl, bu yıl değil, sorunuzu anladım! Neyin peşindesin, ve onunla mutlu musun? –

+0

CasperJS'yi PhantomJS ile kullandım. Ben de SlimerJS'e bir göz atacağım. – user337620

İlgili konular