/ / Capivara: Esboços sem correspondência de rotas - ruby-on-rails, rotas, capivara

Capivara: Stubbing No Route Matches - ruby-on-rails, rotas, capivara

Eu tenho um teste de capivara que verifica o conteúdo em uma página. Eu tenho uma tag img thats src pede uma URL que não existe. Quando eu corro o teste eu recebo:

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"

Eu sinceramente não me preocupo com este pedido. Existe alguma maneira para mim stub /avatars/original/missing.png no meu teste de capivara?

Respostas:

4 para resposta № 1

Ao usar Poltergeist você pode usar a lista negrafuncionalidade para bloquear pedidos específicos. Se estiver usando o Poltergeist 1.10.0+, você pode configurá-lo para cada teste no bloco de registro do driver, adicionando a opção: url_blacklist

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

Em pré 1.10 ou se você quiser fazer em um teste por teste / antes de bloco, você pode fazer

page.driver.browser.url_blacklist = ["http://www.example.com/avatars/original/missing.png"]