Niedawno odkryłem niesamowity pakiet ng-describe
, który sprawia, że pisanie testów jednostkowych dla aplikacji AngularJS jest bardzo przejrzyste dzięki usunięciu całego kodu standardowego, który musisz zapamiętać/wyszukać i pisać, aby załadować, wstrzyknąć, wyśmiać lub szpiegować.Używanie ng-describe do testów end-to-end z kątomierzem
Czy ktoś próbował użyć ng-describe
z protractor
? Czy ma to sens i czy możemy z niego skorzystać?
Jedną z rzeczy, która wpadła mi w oko, jak łatwo można drwić odpowiedzi 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();
});
}
});
szyderczy odpowiedzi HTTP zwykle pomaga osiągnąć lepsze pokrycie e2e i przetestować jak działa UI reaguje konkretne sytuacje i jak działa obsługa błędów. To jest coś, co obecnie robimy z protractor-http-mock
, są też other options, które nie wyglądają tak łatwo jak z ng-describe
.