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