2016-04-06 33 views
0

if @current_lesson.code == @current_course.answer gibi iki eşit dizeyi sınan ve yanıtın bazı bölümlerini hariç tutan bir test ifadesini nasıl alırdım. Yani, eğer kullanıcı bir şeyle <p> etiketini yazmak istiyorsa, <p> etiketine sahip oldukları sürece bunu nasıl doğru yapabilirim?Raylarda test ederken bir dizgenin parçasını hariç tut

cevap

1

Dize içinde metin içeren bir <p> etiketinizin olup olmadığını kontrol etmek için Regexp'i kullanırdım. Rspec kullanırsanız, matches eşleştiriciyi kullanırdım.

kod böyle bir şey olurdu:

expect(@current_lesson.code).to match(/\<p\>.+\<\/p\>/) 

Regexp'i kontrol Hiç, sadece bir noktaya :) kanıtlamaktır.

+0

Ama @ current_course.answer ile nasıl kullanırsınız? – Xavier

+0

"Doğru cevabı" nasıl tanımladığınıza bağlıdır. Kullanıcının% 100 doğru olmasını istiyorsanız, "include?" Veya "expect (@ current_lesson.code) .to match (@ current_course.answer)" komutunu kullanın. Daha esnek olmak istiyorsanız, 'current_course.answer' dinamik olmakla daha da zorlaşır. – born4new

1

Sen dize nesne için "dahil" yöntemi kullanabilirsiniz:

Örnek:

if @current_course.answer.include? @current_lesson.code 
    #Your code logic here 
end 
+0

Çok sıkı mod: sadece 'current_lesson' ** tam olarak ** aynı cevap verirse çalışacaktı ... – born4new

+0

Öyleyse, öbürü işe yarayacak? – Xavier

İlgili konular