0

在对 capybara 和 rspec 进行最新更改之前,允许请求规范使用pageandvisit方法。集成测试运行良好,允许您跨模型、视图和控制器进行测试。所以测试像关注和取消关注用户这样的事情很简单

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与使用andvisit方法的请求规范相比,在功能规范中获得相同的细节似乎更困难或不可能。

任何人都可以展示如何重写请求规范以仅使用response对象和不使用pageand来测试相同的东西visit吗?

而且我也知道将它们重新包含在请求规范中,但不推荐。

提前致谢

4

0 回答 0