如何在Rspec中创建测试以获取用户列表

时间:2014-01-14 13:26:28

标签: rspec tdd

此描述是RSpec创建的默认值。我在使用TDD时遇到了困难。我发现它很复杂,并且无法理解整个过程。

例如,我需要通过访问索引方法来测试它,它返回一个用户列表。测试此功能的方法是什么?

describe "GET 'index'" do
  it "returns http success" do
    get 'index'
    expect(response).to be_success
  end
end

1 个答案:

答案 0 :(得分:0)

您可以避免控制器测试,因为可以使用验收测试(使用rspec + Capybara)测试所有逻辑。我建议购买一本pdf书籍,这对于rspec学习是最好的。 https://leanpub.com/everydayrailsrspec

在这里,我举一个问题的例子:

feature 'Visitor' do

  background do
    2.times |n| { User.new(username: "User #{n}") } #create 2 users to test list
  end

  scenario 'tries to view list of users on users index page' do
    visit users_path #try to enter to users index page
    expect(current_path).to eq users_path #check current path
    expect(page).to have_content 'User 1' #check for User 1 from 'background'
    expect(page).to have_content 'User 2' #check for User 2 from 'background'
  end

end

简单地说,我们按方法“访问”进入索引页面,并希望看到一些信息。