2011-08-16 24 views
7

Tìm kiếm một số ý kiến ​​tại đây.Cách tốt nhất để kiểm tra giá trị Boolean trong Rspec

gì là cách tốt nhất để kiểm tra các giá trị boolean với RSpec Tôi đã thấy nó thực hiện một vài cách khác nhau:

myvar.should == true 
myvar.should be true 
myvar.should be 

Ngoài ra tôi thường chỉ quan tâm đến giá trị vịt, có nghĩa là, nếu nó để đánh giá đúng/sai thì tôi không quan tâm những gì giá trị thực tế của nó là ...

+0

Dường như bạn biết * cách *, vậy bạn đang cố gắng tìm ra điều gì? Có điều gì mà bạn không thích về các tùy chọn bạn đã cung cấp không? – coreyward

+1

Ya Tôi đoán tôi luôn luôn trôi dạt giữa ba bên trên và tôi không thực sự biết cách 'đúng' để làm điều đó là gì. Tôi đã hy vọng một người nào đó có thể giải thích tại sao một lựa chọn có thể tốt hơn so với những người khác ... – Matthew

Trả lời

13

đây là sự khác biệt giữa "== true" và "được (true)":

describe true do 
    it { should be(true) } 
    it { should be_true } 
end 

describe 'true' do 
    it { should_not be(true) } 
    it { should be_true } 
end 

mà về cơ bản có nghĩa là nếu bạn chỉ xe e nếu một giá trị để đánh giá đúng thì bạn muốn sử dụng == true

+1

Tôi không nhận ra rằng bạn có thể truyền giá trị 'nó' đề cập đến dòng mô tả, tôi luôn sử dụng chủ đề {} để đặt nó . Mát mẻ. –

0

Trong tư vấn cho tôi cách tốt nhất là để thêm rspec_boolean để Gemfile bạn trong nhóm: phát triển,: test:

đá quý 'rspec_boolean'

Và vì sử dụng nó như:

mong đợi (val.is_something?) để be_boolean

3

tôi đã kết thúc làm logic ngược lại:.

expect([true, false]).to include myvar 
Các vấn đề liên quan