2017-02-09 4 views
0

(サポートされていない期待)と私が読んだすべてのものは、次のように動作する必要があることを述べている: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のドキュメントのどれも、この特定の問題に関するロードマップの多くはありませんでした。

+1

RSpecは2行目と3行目がなくても動作します。 'require 'rspec/expectations''と' include RSpec :: Matchers'を削除するとどうなりますか?私はそれがあなたの問題の原因だと思う。 –

+0

@MarkoAvlijašAh、待ってください。面白い。だから私が両方を取り除くと、私は元々誤って読んでいて、ただ1つを取り除いただけです。それはうまくいくようです。 –

答えて

0

@MarkoAvlijaš(投稿のコメントを参照)のおかげで、明らかにincludeステートメントと同様に明示的なrequireが必要になっていたようです。

これらが削除されると、仕様ファイルは問題なく実行されます。

関連する問題