【发布时间】:2016-04-25 14:17:46
【问题描述】:
我的 Rails 3.2 应用程序的 Rspec 控制器测试如下所示:
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">
(作为参考,经过大量调整 gem、测试和一些代码后,我可以在本地运行应用程序,这个用例工作正常,Rails 控制台工作正常,我们的测试套件中的 700 个测试中有 685 个通过。在 15 个失败的测试中,大约有 5 个看起来像这种失败)。
这看起来像是在用资产做一些时髦的事情,但我现在不知道如何让 RSpec 忽略它,或者如何在图片末尾没有时髦的“7c44 ...”字符串的情况下提供链接名称或替代名称。
有没有办法解决这个问题?
【问题讨论】:
标签: ruby-on-rails-4 rspec asset-pipeline rspec2