在对capybara和rspec进行最新更改之前,请求规范允许使用page
和visit
方法。集成测试运行良好,允许您跨模型,视图和控制器进行测试。因此,测试类似于关注和取消关注用户的内容非常简单
describe "User" do
context "Relationships" do
let(:user) { FactoryGirl.create :user }
let(:other_user) { FactoryGirl.create :user }
before do
sign_in user
end
describe "Following a user" do
before do
visit user_path(other_user)
end
it "will increment the followed user count" do
expect do
click_button "Follow"
end.to change(user.followeds, :count).by(1)
end
end
end
end
现在这是根据capybara和rspec
推荐的功能规范重写的请求规范feature "Relationships" do
given!(:user) { FactoryGirl.create :user }
given!(:other_user) { FactoryGirl.create :user }
background do
sign_in user
end
scenario "following another user" do
visit user_path(other_user)
click_button "Follow"
expect(page).to have_button "Unfollow"
end
end
与使用page
和visit
方法的请求规范相比,在功能规范中获取相同细节似乎更加困难或不可能。
是否有人可以展示如何重写请求规范以仅使用response
对象并且没有page
和visit
来测试相同的内容?
我也知道将它们包含在请求规范中,但不推荐使用。
提前致谢