如何编写测试来测试我的api,它返回了我的项目列表?

时间:2014-08-09 17:27:27

标签: ruby-on-rails ruby ruby-on-rails-3 unit-testing rspec

我需要为返回的项目列表编写测试。

Scenario: Test Model method Project.all

it "Gets all projects" do 
   projects = Project.all(authentication: @auth);
   project_names = project.map {|project| project["name"]}
   expect(project_names).to match_array(["Test", "Test2", "Test3"]);
end

要测试什么,我的模型方法Project.all会返回projects的列表,但我不确定test对它的反应。现在我正在检查project列表是否有这些标题。

1 个答案:

答案 0 :(得分:1)

我认为问题的范围在如何以及测试什么方面相当普遍。

1)一个好的经验法则是只测试你拥有的东西。这是您编写的代码,而不是已经测试过的框架或库方法。我建议测试自定义方法而不是#all方法。

2)另一个好的规则是要意识到在现实世界中,你不能测试所有可能的分支,你应该只测试这么多来覆盖最可能的情况。应用于上述示例的此规则意味着仅测试返回的对象数,而不测试其各个属性的值。