【问题标题】:How to write a test to test my api which returns me list of projects?如何编写测试来测试我的 api,它返回我的项目列表?
【发布时间】:2014-08-09 17:27:26
【问题描述】:

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

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 的列表是否有这些标题。

【问题讨论】:

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


    【解决方案1】:

    我认为问题的范围相当笼统,关于如何测试和测试什么。

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

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

    【讨论】:

    • 谢谢,如果我们不知道返回的对象数量,我们如何测试?
    猜你喜欢
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多