我最近发现了一个很棒的ng-describe
包,它通过抽象出你必须记住/查找和编写的所有样板代码来加载、注入、模拟或监视,从而使为 AngularJS 应用程序编写单元测试变得非常透明。
有人试过用ng-describe
withprotractor
吗?这有意义吗?我们能从中受益吗?
引起我注意的一件事是您可以轻松地模拟 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 响应通常有助于实现更好的 e2e 覆盖并测试 UI 如何对特定情况做出反应以及错误处理如何工作。这是我们目前正在做的事情protractor-http-mock
,还有其他选项看起来不像使用ng-describe
.