Ich habe vor kurzem eine erstaunliche ng-describe
-Paket entdeckt, die Schreibgeräte Tests für AngularJS Anwendungen sehr transparent macht durch Abstrahieren aller Boileplate-Code Sie erinnern/nachschlagen müssen und schreiben, um zu laden, zu injizieren, zu verspotten oder zu spionieren.Verwenden von ng-describe für Ende-zu-Ende-Tests mit Winkelmesser
Hat jemand versucht, ng-describe
mit protractor
zu verwenden? Macht es Sinn und können wir davon profitieren?
Eines der Dinge, die mein Auge gefangen ist, wie einfach Sie die HTTP-Antworten verspotten:
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();
});
}
});
Mocking HTTP-Antworten hilft in der Regel eine bessere e2e Abdeckung zu erreichen und testen, wie funktioniert UI reagiert auf spezifische Situationen und wie funktioniert die Fehlerbehandlung. Dies ist etwas, was wir derzeit mit protractor-http-mock
tun, gibt es auch other options, die nicht so einfach aussehen wie mit ng-describe
.