1

您为 REST 服务(基于 ASP.NET WebAPI)推荐什么样的测试/自动化测试?当然有单元测试,但除此之外,有必要确保在使用某个版本后,对该特定版本的任何进一步更改都会公开兼容的 json(我们假设向 json 添加新字段对于客户)。

4

2 回答 2

1

对于 REST API 的测试,我使用Robot Framework以及(很棒的)Requests library

我想出了如下测试:

*** settings ***
Library  Collections
Library  requests

*** test cases ***
simpleRequest
${result} =  get  http://echo.jsontest.com/framework/robot-framework/api/rest
Should Be Equal  ${result.status_code}  ${200}
${json} =  Set Variable  ${result.json()}
${framework} =  Get From Dictionary  ${json}  framework
Should Be Equal  ${framework}  robot-framework
${api} =  Get From Dictionary  ${json}  api
Should Be Equal  ${framework}  rest

我在博客文章中提供了更多细节。

于 2013-09-18T07:11:18.753 回答
0

对于 REST 服务,我通常会尝试在QUnit(一个 Javascript 测试框架)中设置一些测试来配合单元测试。我发现它适用于这类事情。下面是检查从 REST 服务返回的 JSON 的片段(使用 jQuery 进行调用)。

asyncTest("Test Some JSON Call", function() {
    var url = "http://localhost:5555/myservice";
    rest_test_jsonp(url, function(data, status){
        ok(data != null);
        ok(data.some_array.length > 0);
    });
});

function rest_test_jsonp(url, callback) {
   $.jsonp({
      "url": url+"&callback=?",
      "success": function(data, status, message) {
          callback(data, status, message);
          start();
      },
      "error": function(data, status, message) {
          callback(data, status, message);
          start();
      }
    });
}

它还允许您在 HTML 页面中运行这些测试,这非常适合向利益相关者展示功能。

于 2013-09-18T03:31:30.563 回答