2016-11-30 7 views
0

は、私はRailsの中で私のrequest.hostは、私の研究でRspec/Capybara/Poltergeist:URLをスタブする方法は?私のテストのために

「www.example.com」以外の何かとして表示されるように、ほとんどの人が提案し、偽/テストが使用されているURLをスタブにしたいと思いますcapybaraのapp_hostを変更しますが、これはデフォルトのドライバを使用している場合にのみ機能します。ポラテジストを使用する場合、実際にはそのURLに移動します。

他に何かありますか?

+1

Capybara/Poltergeistを使用するときは、完全なスタックをテストする機能テストを行っています。あなたは何かをスタブ/モックしようとするべきではありません(代わりにコントローラの仕様が必要なのでしょうか?)。さらに、デフォルトのラックテストドライバを使用していないときは、アプリ内のrequest.hostに「127.0.0.1」が表示されます(www.example.comではなく)。 Capybara.app_hostを任意のものに変更できますが、ローカルDNSがそれを127.0.0.1(/ etc/hostsエントリなど)に解決する必要があります。たぶん、正確に何をしようとしているのかをもう少し説明する必要があります。 –

+0

ええ、私はDNSを127.0.0.1に解決してもらいたいと思っています(それは何が起こっているのでしょうか)。CircleCIのようなCIで何が起こるか少し気になります。そのようなサービスを使用してホストファイルを設定する方法はありますか?それは私の最善の策かもしれない。 – amclelland

+0

ドメイン名を変更するためには、正確に何をテストしようとしていますか? –

答えて

0

Capybara/Poltergeistを使用しているときは、完全なスタックをテストする機能テストを行っています。あなたは何かをスタブ/モックしようとするべきではありません(代わりにコントローラの仕様が必要なのでしょうか?)。

また、デフォルトのラックテストドライバを使用していない場合は、アプリ内のrequest.host( 'www.example.com'ではなく)に '127.0.0.1'が表示されます。 Capybara.app_hostを任意のものに変更できますが、ローカルDNSがそれを127.0.0.1(/ etc/hostsエントリなど)に解決する必要があります。ほとんどのCIシステムでは、DNSの解像度を指定することもできます。https://circleci.com/docs/configuration/#hosts

+0

私はこの「スタブ無し」の考え方には限界があると思います。例えば。あなたが支払いをテストしているなら、あなたは本当のお金を送ってはいけません。私は外部依存(支払プロセッサ、AWSなど)が突き詰められていると感じています。私が間違っているなら私を訂正してください。 –

+0

@MarosHluska Partly correct - 機能テストでは、支払いを処理するサービス(https://github.com/thoughtbot/fake_stripeなど)に偽物を使用します。フィーチャーテスト(模擬/スタブ)でコードを修正することをしたくない場合は、実動コードが実際にテストされたかどうかわからない場合があります。 –

関連する問題