Ho scoperto di recente un fantastico pacchetto ng-describe
che rende molto trasparenti i test di unità di scrittura per le applicazioni AngularJS estraendo tutto il codice boilerplate da ricordare/cercare e scrivi per caricare, iniettare, deridere o spiare.Uso di ng-describe per il test end-to-end con goniometro
Qualcuno ha provato a utilizzare ng-describe
con protractor
? Ha senso e possiamo trarne beneficio?
Una delle cose che ha catturato la mia attenzione è il modo facile si può prendere in giro le risposte 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();
});
}
});
beffardo risposte HTTP di solito aiuta a raggiungere una copertura E2E migliore e verificare come funziona UI reagisce situazioni specifiche e come funziona la gestione degli errori. Questo è qualcosa che stiamo facendo attualmente con protractor-http-mock
, ci sono anche other options che non sembrano facili come lo è con ng-describe
.