对于REST服务(基于ASP.NET WebAPI),您推荐哪种类型的测试/自动化测试?当然也有单元测试,但除此之外,有必要确保在某个版本上线后,对该特定版本的任何进一步更改都会公开一个兼容的json (我们假设向json添加新字段对于客户端来说是可以的)。
发布于 2013-09-18 15:11:19
对于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我在blog post中给出了更多细节。
发布于 2013-09-18 11:31:31
对于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页面中运行这些测试,这对于向利益相关者演示功能非常有用。
https://stackoverflow.com/questions/18858594
复制相似问题