2

答えによると、rspecで期待形を使うことができます。

value = true
expect(value).to be_a(TrueClass) # => true

しかし、#be_trueメソッドを使用すると、例外で応答を拒否しました:

expect(true).to be_true # => RSpec::Expectations::ExpectationNotMetError: expected true to respond to `true?`

だから私はそれを使用したようにメソッドを使用することはできませんが、それ自体railsなしでは使用できませんrailsrails質問は、 を含まず、手動で定義せずにメソッドを追加するにはどうすればよいですか?

4

1 に答える 1

1

このようにしてみてください:

expect(true).to be true

RSpec のドキュメントではbe_true、オブジェクトがnilまたはfalseでない場合にパスすることが示されていますが、実際には、オブジェクトが である場合はパスしないことがわかりましたtruetrue値が真の値だけでなく、具体的に確認したい場合は、, be true(スペース付き), ,eql trueなどを使用する必要があります.eq trueequal true

(まだ慣れていない場合は、RSpec の等値マッチャーの違いについてここで読むことができます。使用している RSpec のバージョンは言及されていないため、それは 3.2 に適用されます。これは他のバージョンでも同じであると思います。 )

于 2015-02-04T22:03:43.600 に答える