У меня есть тест контроллера работает RSpec для моего Rails 3.2 приложения, который выглядит следующим образом:Портирование с Rails 3.2 до Rails 4.2 RSpec тест have_selector терпит неудачу
get 'home'
response.should have_selector("img", alt: "can-logo', src: "/assets/can-logo.png")
Тест используется для передачи, когда мы использовали Rails 3.2. Теперь с Rails 4.2, тест не пройден, и сообщение об ошибке выглядит следующим образом:
Failure/Error: response.should have_selector("img", alt: "can-logo", src: "/assets/can-logo.png")
expected following output to contain a <img alt='can-logo' src='/assets/can-logo.png'/>
Фактический ответ имеет следующую строку:
<img src="/assets/can-logo-7c448d46877fafd50ab64f7abae0ca10719221722dd3d1ae257f24fc449efa1d.png" alt="can-logo 7c448d46877fafd50ab64f7abae0ca10719221722dd3d1ae257f24fc449efa1d">
(Для справки, после того, как много регулировочные драгоценные камни, тесты, и некоторый код, я могу запустить приложение локально, и этот прецедент отлично работает, консоль Rails работает нормально, и 685 из 700 тестов из нашего тестового набора проходят. Из 15 неудачных тестов примерно 5 выглядят как этот сбой).
Похоже, что это делает что-то напуганное с активами, но я не понимаю, как заставить RSpec игнорировать его или как обслуживать ссылку без фанковой строки «7c44 ...» в конце имя изображения или имя альт.
Есть ли способ решить эту проблему?
Это не сработало. Я получил ошибку Nokogiri :: CSS :: SyntaxError: неожиданную ошибку '/' после 'prefix_match'. –
Является ли аргумент has_selector предположительным регулярным выражением Ruby? –
Извините, я забыл, наверное, необходимые цитаты - обновленный ответ. Предполагая, что has_selector, который вы используете, принадлежит Webrat, я не думаю, что это потребовало регулярное выражение, поскольку оно преобразует его в XPath. Я мог ошибаться в этом, но прошло некоторое время, так как я использовал webrat –