【发布时间】:2011-05-09 08:10:33
【问题描述】:
我想测试我的“style.css”是否链接到我的页面,同时使用某种布局呈现它,例如“application.html.erb”:
所以这是规范:
spec/views/layouts/application.html.erb_spec.rb
it 'should include styles for screen media' do
render
rendered.should have_selector('link',
:href => '/stylesheets/style.css',
:media => 'screen',
:rel => 'stylesheet',
:type => 'text/css'
)
end
我的 application.html.erb 看起来像:
app/views/layouts/application.html.erb
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="content-type">
<%= stylesheet_link_tag :style, :media => 'screen' %>
<%= javascript_include_tag :defaults %>
<%= csrf_meta_tag %>
</head>
<body>
<%= yield %>
</body>
</html>
当我运行视图规范时,它失败了,因为
<link href="/stylesheets/style.css?1289599022" media="screen" rel="stylesheet" type="text/css">
被渲染,并且
<link rel='stylesheet' type='text/css' media='screen' href='/stylesheets/reset.css'/>
是预期的。
这都是关于文件名后添加的数字“?1289599022”轨道。有关如何测试此功能的任何想法?
【问题讨论】:
-
鉴于您展示的规范,我认为您的期望不会是您所写的。
-
本规范确实根据 rspec 控制台输出寻找合适的链接标签
-
是水豚吗?你是如何让它在视图规范中工作的? groups.google.com/group/ruby-capybara/browse_thread/thread/…
标签: ruby-on-rails layout rspec