在普通视图spec文件中,我可以使用Capybara测试视图。
require 'spec_helper'
describe 'site/login' do
subject { page }
before { visit login_path }
it { should have_selector('#login form') }
end
使用Rspec我可以测试一下。
require 'spec_helper'
describe 'site/sidebar' do
it "displays the login form" do
render :partial => "site/sidebar"
expect(rendered).to match /form/
end
end
同样在Capybara,我可以像
一样测试视图require 'spec_helper'
describe 'site/sidebar' do
let!(:rendered) { render :partial => "site/sidebar" }
let(:page) { Capybara::Node::Simple.new(rendered) }
it { page.should have_selector('form') }
end
最后一个似乎工作但感觉有点hacky。 Capybara有没有像visit_partial
那样的方法?我以为我可以在Capybara::Driver::Base
中找到类似的内容,但我无法找到。
答案 0 :(得分:2)
你的hacky方法对我来说很好看。如果您有很多部分内容,则可以使用共享上下文:
shared_context "Rendered partial" do
let!(:rendered) { render :partial => partial }
let(:page) { Capybara::Node::Simple.new(rendered) }
subject { page }
end
describe "My partial" do
let(:partial) { "site/sidebar" }
include_context "Rendered partial"
it { should have_selector('form') }
end