2014-06-06 17 views
46

Ben benim rspec-rails 3.0.1 yükseltilmiş ve şimdi ben çözümü ne de ne ben eksik bulamıyorumDoğru yanıtlanması bekleniyor?

Failure/Error: Sidekiq::Status::complete?(json.jid).should be_true 
    expected true to respond to `true?` 

benim testlerin hepsi bu hatayı görüyorum. RSpec 3.0 itibaren

+1

[rspec başarısız hatası olası kopyası: \ 'false \\] 'ya yanıt vermek için beklenen yanlış (http://stackoverflow.com/questions/23937758/rspec-failing-error-expected-false-to- false yanıtı) –

cevap

92

, be_truebe_falsey

davranış için be_truthy ve be_false yeniden adlandırılır değişmedi. Yani

(nil).should be_falsey 
(false).should be_falsey 

Eğer bu ekleyebilir, mevcut özellikleri sürü yeniden yazmak değil için geçmek ve changelog 3.0.0.beta1/2013-11-07

Rename be_true and be_false to be_truthy and be_falsey. (Sam Phippen)

+36

Teknik olarak bu cevap yanlış. rspec 3.0 'be_truthy',' true 'ile aynı değildir. Değerin gerçek olup olmadığını gerçekten doğrulamak istiyorsanız, o zaman “true (true). True” ifadesini kullanmalısınız (gerçek ve doğru arasındaki alt çizgi eksikliğine dikkat ediniz). Ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers –

+1

@ LarryKyrala. 'Be_truthy' ile aynı olmamak için doğru olmanız konusunda haklısınız. Ama cevabım ve OP'nin sorusu 'be_true' hakkındaydı (alt çizgi varlığına dikkat edin) – Santhosh

+1

Doğru sizsiniz! Üzgünüm, 3.0 dokümanda herhangi bir yerde belirtilen yeniden adlandırmayı görmedim. Ama bu [changelog] (https://github.com/rspec/rspec-expectations/commit/860ca42905582549768ee0ff0837fb6c523b8199) 'dir. –

1

itibaren

(anything other than nil or false).should be_truthy 

da geçecek

olacak spec_helper (uyum duygusuna zarar verir ama zaman kazandırır):

def true.true? 
    true 
end 

def true.false? 
    false 
end 

def false.true? 
    false 
end 

def false.false? 
    true 
end 
+3

Bu tür şeyleri bulmak ve değiştirmek kolaydır. Örneğin: 'git grep -l be_true | xargs sed -i '/ be_true/be_truthy /' ' – jonleighton

İlgili konular