Ho una funzione sul mio servizio che assomiglia a qualcosa questo:
addStatement: function(user, action, object) {
var statement = {
user: user,
action: action,
object: object
};
$http({
method: 'POST',
url: '/foo/bar',
data: statement,
headers: {Authorization: 'Basic YWxhZGRpbjpvcGVuIHNlc2FtZQ=='}
}).success(function(data) {
alert("success: " + data);
});
}
Voglio scrivere uno unit test per questo metodo, ma non sono sicuro Come farlo funzionare. Fondamentalmente, voglio verificare che i dati inviati siano stati costruiti correttamente dai parametri di funzione e che sia stata inviata l'intestazione di autorizzazione corretta.
Ho letto su come usare $httpBackend, ma nell'esempio si sta verificando un controller, e basta inserire le modifiche su $ scope quando le richieste vengono fatte e restituite. C'è un modo per raggiungere i test che voglio? O sto andando su qualcosa di sbagliato?
+1 per evitare 'alert's. Un'altra possibilità è che potresti voler inserire '$ window' e usare' $ window.alert' in modo da poterlo prendere in giro per i tuoi test. – btford
Momento di apprendimento: se si elimina '$ httpBackend.flush();' il test non sarà come previsto. –