は、私はこのように呼び出されるメソッドを持っています。私がテストで気にしているのは、app_contextです。私はこのような何かをしようとしたが、それは動作しません:rspecの引数とキーワードの引数を組み合わせて、そのメソッドが呼び出される方法をテストするには?</p> <pre><code>post_signup(user, "fb signup completed", app_context: current_app_id, description: "Automatically Populated Via #{current_app_id}") </code></pre> <p>引数は値とキーワード引数のミックスです:
it "should log an event with an app_context" do
expect(controller).to receive(:post_signup).with(hash_including(app_context: current_app_id))
subject
end
と
it "should log an event with an app_context" do
expect(controller).to receive(:post_signup).with(current_app_id, any_args)
subject
end
男は何ができますか?
が良い絶望しないでください:だから作業
expect
あなたのようなものが必要だろう作る市民、 'hash_including'の魔法はあなたを救うでしょう! http://www.rubydoc.info/gems/rspec-mocks/RSpec/Mocks/ArgumentMatchers#hash_including-instance_method –
あなたが実際にそれを試したことに気付く...:D しかし、それは最初の引数として試したようです。 ..ハッシュは2番目の引数なので、 'expect(controller).to receive(:post_signup).with(anything、hash_including(app_context:current_app_id))'のように 'anything '引数(これは 'user'です)とhash_includingが残りの部分(ハッシュ...)に使用されます。 –
これを@TarynEast – Jwan622