如何在没有`page`和`visit`方法的情况下重写请求规范?

时间:2013-10-27 21:58:53

标签: ruby-on-rails rspec capybara rspec-rails

在对capybara和rspec进行最新更改之前,请求规范允许使用pagevisit方法。集成测试运行良好,允许您跨模型,视图和控制器进行测试。因此,测试类似于关注和取消关注用户的内容非常简单

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

与使用pagevisit方法的请求规范相比,在功能规范中获取相同细节似乎更加困难或不可能。

是否有人可以展示如何重写请求规范以仅使用response对象并且没有pagevisit来测试相同的内容?

我也知道将它们包含在请求规范中,但不推荐使用。

提前致谢

0 个答案:

没有答案