2016-08-26 26 views
3

私はページ上の内容をチェックするカピバラテストを行っています。 srcにimgタグがあり、srcには存在しないURLが必要です。私がテストを実行すると、私は受け取る:Capybara:経路が一致しないスタンプ

Failure/Error: raise ActionController::RoutingError, "No route matches [#{env['REQUEST_METHOD']}] #{env['PATH_INFO'].inspect}" 

    ActionController::RoutingError: 
    No route matches [GET] "/avatars/original/missing.png" 

私は正直にこの要求を気にしない。私のカピバラのテストで私にスタブ/avatars/original/missing.pngのための方法はありますか?

+0

チェックhttp://stackoverflow.com/questions/14629491/capybara-tests-with-js-true-routing-error-no-route-matches-get-assets –

+0

@Hithamが、多少役に立った、私は私の質問に直接答えを見つけることができませんでした。これらのすべてのケースで、彼らは資産パイプラインを修正しようとしていました。私はそれについて気にしない。私はちょうどそれを突き詰めたい。 – jason328

+0

アセットパイプラインを修正して、スタブする必要がないものを除外する必要はありません。 –

答えて

3

ポラテジストを使用する場合、ブラックリスト機能を使用して特定のリクエストをブロックできます。ポルターガイストを使用している場合1.10.0+あなたは追加することにより、ドライバの登録ブロック内のすべてのテストのためにそれを設定することができます。url_blacklistオプションを

事前1.10にしたり、ブロックの前に/テストでのテストでそれをしたい場合
Capybara.register_driver :poltergeist do |app| 
    # Change domain name as necessary 
    options = { url_blacklist: ['http://www.example.com/avatars/original/missing.png'] } # you can also use * as a wildcard 
    Capybara::Poltergeist::Driver.new(app, options) 
end 

基礎あなたが行うことができます

page.driver.browser.url_blacklist = ['http://www.example.com/avatars/original/missing.png'] 
関連する問題