Rails uygulamasında, bazı Ruby kodlarına göre dinamik olarak ayarlanan bir değişkene sahip bir .js.erb dosyası var.RSpec otomatik testi sırasında Sprockets önbelleğini geçersiz kılma
var myTimer = <%= MyApp.config.timeout_time * 1000 %>;
Uygulama iyi çalışıyor, ancak bazı otomatik testlerde sorun yaşıyorum. Sorun, bu JavaScript ile çalışan bir RSpec özellik testinde gerçekleşir. Benim spec dosyada farklı senaryoları test etmek için anında MyApp.config.timeout_time
rubyeyi değiştiren bir dizi test vardır. Benim spec dosyasımda, ilk örnek geçer ve gerisi başarısız olur.
Sonunda bunun gerçekleştiğini anladım çünkü myTimer
hiçbir zaman JavaScript tarafında güncellenmez. İlk test çalıştırıldığında, JavaScript, Ruby'de ayarlandığı haliyle mevcut değeri kullanarak derlenir. İkinci test için Ruby zamanlayıcısını değiştirdiğimde, RSpec hala JavaScript'te bir önceki değeri kullanıyor.
Sprockets/Rails'e JavaScript'in yeniden oluşturulması için bir dosyayı veya önbelleğin bir bölümünü geçersiz kılmalarını söylemenin bir yolu var mı? Genel olarak önbelleğe almayı kapatmak istemiyorum, sadece gerektiğinde uygulama testini uygulama.js'yi geçersiz kılmanın bir yoluna ihtiyacım var.
Dosya sistemindeki javascript dosyalarını değiştirdiğimi düşünmek için dosya sistemindeki JavaScript dosyalarından birine dokunabilirim, ancak bunu gerçekten yapmak istemiyorum.
Teşekkürler, bu harika bir fikir. Bir şans vereceğim. – CodeSmith
Hiç şansın var mı? –
Henüz emin değilim. Diğer bazı sorunları desteklemek için yönlendirildim ve henüz bunu denemek için bir şansım olmadı. Daha fazlasını bildiğim zaman güncellenir. – CodeSmith