que tienen una función en mi servicio que se ve como algo esto:
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);
});
}
Quiero escribir una prueba unitaria para este método, pero no estoy seguro Cómo hacer que funcione. Básicamente, quiero probar que los datos enviados se construyeron correctamente a partir de los parámetros de la función y que se envió el encabezado de Autorización correcto.
He estado leyendo sobre cómo usar $httpBackend, pero el ejemplo está probando un controlador, y solo cosas que cambian en el $ scope cuando las solicitudes son hechas y devueltas. ¿Hay alguna manera de lograr las pruebas que quiero? ¿O estoy haciendo algo mal?
+1 para evitar 'alert's. Otra posibilidad es que quieras inyectar '$ window' y usar' $ window.alert' para que puedas simular eso para tus pruebas. – btford
Momento de aprendizaje: si saca '$ httpBackend.flush();' su prueba no será la esperada. –