我最近发现了一个很棒的
有人尝试过将
其中吸引我眼球的一点是您可以轻松地模拟HTTP响应:
ng-describe
软件包,通过抽象掉加载、注入、模拟或间谍所需记忆、查找和编写的所有样板代码,使得为AngularJS应用程序编写单元测试非常透明。有人尝试过将
ng-describe
与protractor
一起使用吗?是否有意义,并且我们可以从中受益吗?其中吸引我眼球的一点是您可以轻松地模拟HTTP响应:
ngDescribe({
inject: '$http', // for making test calls
http: {
get: {
'/my/url': 42, // status 200, data 42
'/my/other/url': [202, 42], // status 202, data 42,
'/my/smart/url': function (method, url, data, headers) {
return [500, 'something is wrong'];
} // status 500, data "something is wrong"
},
post: {
// same format as GET
}
},
tests: function (deps) {
it('responds', function (done) {
deps.$http.get('/my/other/url')
.then(function (response) {
// response.status = 202
// response.data = 42
done();
});
http.flush();
});
}
});
模拟HTTP响应通常有助于实现更好的端到端覆盖,并测试UI对特定情况的反应以及错误处理的工作方式。目前我们正在使用protractor-http-mock
进行此操作,还有其他选项看起来不像使用ng-describe
那样容易。