2014-01-14 31 views
0

此描述是RSpec创建的默认值。我很难与TDD合作。我觉得它很复杂,并且无法理解整个过程。如何在Rspec中创建测试以获取用户列表

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

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

你的问题中的措词感到困惑。您在使用TDD时遇到困难 - 您发现它很复杂 - 您(不)了解整个程序?我想帮助编辑您的问题以使其更清楚,以便我或其他人可以更好地回答它。 – verdammelt

回答

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 

简单地说,我们是通过方法进入索引页“参观”,并希望看到一些信息。