(サポートされていない期待)と私が読んだすべてのものは、次のように動作する必要があることを述べている:RSpecのマッチャーが動作しないが、私はこれを研究している
require 'spec_helper'
require 'rspec/expectations'
include RSpec::Matchers
RSpec.describe 'Posts' do
it 'should return 200 response when getting posts' do
result_posts = RestClient.get('http://jsonplaceholder.typicode.com/posts')
expect(result_posts.code).to eq(200)
end
end
私が持っている私のspec
ディレクトリ内のファイル(json_spec.rb
)インチこれはRSpec 3.5.4を使用しています。
この仕様を実行するときに受信されたメッセージは次のとおりです。
only the `receive`, `have_received` and `receive_messages` matchers
are supported with `expect(...).to`, but you have provided:
#<RSpec::Matchers::BuiltIn::Eq:0x007f9b43590f48>
つのポストは、私は
extend RSpec::Matchers
を使用してのではなく、それらを「含める」しようとする必要があることを示唆しました。私はそれをして、まったく同じエラーが表示されます。
さらに別の記事では、「rspec/expectations」ではなく「rspec」だけでなく、それはどちらもうまくいかない。しかし、少なくとも私はそこに私の基地をカバーしていました。
もう1つの投稿は、RSpec設定ブロックにインクルード(あるいは多分拡張子か多分両方)そのようなもの:
RSpec.configure do |config|
include RSpec::Matchers
end
しかし、これも機能しません。
上記の内容は、文字通り私がspec
ディレクトリにあるすべてのものです。私のspec_helper.rb
ファイルには、単にrequireステートメントとincludeディレクティブが含まれていました。実際の仕様ファイル(上記のように)に移動して、それが問題かどうかを確認しました。
私はRailsやCucumberを使用していないので、私の知るところでは、マッチャーを含めることができる、またはすべきであるという広い文脈はありません。
私はここでかなり基本的なものを見逃していると思いますが、RSpecのドキュメントのどれも、この特定の問題に関するロードマップの多くはありませんでした。
RSpecは2行目と3行目がなくても動作します。 'require 'rspec/expectations''と' include RSpec :: Matchers'を削除するとどうなりますか?私はそれがあなたの問題の原因だと思う。 –
@MarkoAvlijašAh、待ってください。面白い。だから私が両方を取り除くと、私は元々誤って読んでいて、ただ1つを取り除いただけです。それはうまくいくようです。 –