私はビューの構築方法をテストする統合テストを構築しています。このアプリケーションのアーキテクチャは、Rails APIと通信するAngularフロントエンドです。RSpecでCapybaraがあなたのアプリのAPIをスタブする方法をテストしますか?
サーバーから読み込まれたデータに応じて、Angularで機能の動作をテストします。したがって、私はそれが正しく戻ってきたことを保証できるように、そのデータをスタブしたいと思います。私はこれが技術的に統合テストではないことを知っていますが、それは私がテストしているフロントエンドです。
私は
describe "my front end feature" do
# This before block has the data I want to instruct my API to return
data = [
{"uid"=>"1", "last_seen_at"=>"2017-05-08T09:24:38"},
{"uid"=>"2", "last_seen_at"=>"2017-05-08T09:11:07"},
{"uid"=>"3", "last_seen_at"=>"2017-05-08T08:49:57"}
]
# NB this next line does not work...
WebMock.stub_request(:any, /\/my_api\/data_resource.*/).to_return(status: 200,
body: data.to_json)
end
it "Should load my stubbed data into the page" do
login member1
visit org_path(org)
# do my test to detect the appropriate content in the page
end
end
どのようにあなたがあなた自身のAPIをスタブすることができますを行うことができるようにしたいのですがどのような?
私は外部APIをスタブするためにwebmockを使用する方法を知っていますが、私がしたいのは、capybaraがfirefoxを起動したときにスタブされたデータを取得するのではなく、自分のAPIをスタブすることです。これは可能ですか?