【发布时间】:2014-12-24 21:54:53
【问题描述】:
我可能在这里找错了树,但我正在尝试为 rails 视图规范构建一个应该匹配器。
现在我有一个看起来像这样的视图规范:
require 'rails_helper'
RSpec.describe 'layouts/_navigation', :type => :view do
context 'everyone' do
before :each do
allow(view).to receive(:user_signed_in?).and_return(false)
render
end
it 'shows links to start reading' do
expect(rendered).to have_link(I18n.t(:start_reading), :href => stories_path)
end
it 'shows links to home page' do
expect(rendered).to have_link(I18n.t(:unknown_tales), root_path)
end
end
end
我希望能够将其替换为如下内容:
require 'rails_helper'
RSpec.describe 'layouts/_navigation', :type => :view do
context 'everyone' do
before :each do
allow(view).to receive(:user_signed_in?).and_return(false)
render
end
it {should have_valid_link(I18n.t(:start_reading), stories_path)}
it {should have_valid_link(I18n.t(:unknown_tales), root_path)}
end
end
我对此进行了尝试,使用以下方法,但它不起作用:
RSpec::Matchers.define :have_valid_link do |title, path|
description { "have valid link to #{path} on #{title}" }
match do |rendered|
expect(rendered).to have_link(title, :href => path)
end
end
我不确定这是否不起作用,因为我做错了,或者如果匹配器从未设计用于处理视图。
谢谢
【问题讨论】:
标签: ruby-on-rails rspec shoulda