RSpecのをオフラインで実行しているとき、どのように私はオンラインの依存関係に対処する必要がありますか?
-
25-09-2019 - |
質問
私は、Webに接続されたときに私はいないんだよときに私は両方の私のコードをテストするためにはRSpecを実行したいと思います。
残念ながらライブ接続を持つに依存しているアプリケーション内のいくつかのテストがある - 電子メールの送信、Facebookとの統合など
は、オンライン/オフラインのテスト環境を作成するためのベストプラクティスの方法はありますか。この悪い習慣ですか?私は後者を推測しているウェブ上でこのことについて見つけることができるか少しから判断する。
解決
あなたはコードその接続の外の部分にアプリケーションをあざけるだろうというような状況で通常。これは、あなたがに接続されているサービス/システムから予想される結果に対してテストすることができます。これは、テストを実行するためにも迅速です。
RSpecのここをしてからかうの簡単なチュートリアルがありますが、私はあなたができると確信していますたくさんの自分自身を見つけるます。
あなたはactionmailerのを通じて送信する場合は電子メールは、他のアプローチがある送信されますことをテストしてください。その上のセクションには、レールガイドをテストします。
にあります(コメントに応答して)編集:
あなたがオンラインであるときにのみ実行テストにTestHelper
方法を置くことができます。ような何かます:
def when_online
if test_remote_connectivity
yield
else
puts "Skipping test offline."
end
end
次に、あなたのようにそれを呼び出すことができます:
def test_facebook
when_online do
.....
end
end
わからない私は完全にそれを提唱しかし、それはあなたがやりたいかもしれません!
他のヒント
あなたは、リモートリソースに接続したくないテスト/スペック内 webmock して使用することができます。
所属していません StackOverflow