RSpecのをオフラインで実行しているとき、どのように私はオンラインの依存関係に対処する必要がありますか?

StackOverflow https://stackoverflow.com/questions/4603161

  •  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 して使用することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top