Tengo una directiva AngularJS que tiene una templateUrl
definida. Estoy tratando de probarlo con Jasmine.
Mi JavaScript de Jasmine se parece a lo siguiente, según la recomendación de esto :
describe('module: my.module', function () {
beforeEach(module('my.module'));
describe('my-directive directive', function () {
var scope, $compile;
beforeEach(inject(function (_$rootScope_, _$compile_, $injector) {
scope = _$rootScope_;
$compile = _$compile_;
$httpBackend = $injector.get('$httpBackend');
$httpBackend.whenGET('path/to/template.html').passThrough();
}));
describe('test', function () {
var element;
beforeEach(function () {
element = $compile(
'<my-directive></my-directive>')(scope);
angular.element(document.body).append(element);
});
afterEach(function () {
element.remove();
});
it('test', function () {
expect(element.html()).toBe('asdf');
});
});
});
});
Cuando ejecuto esto en mi error de especificación de Jasmine obtengo el siguiente error:
TypeError: Object #<Object> has no method 'passThrough'
Todo lo que quiero es que la templateUrl se cargue tal cual, no quiero usar respond
. Creo que esto puede estar relacionado con él usando ngMock en lugar de ngMockE2E . Si este es el culpable, ¿cómo uso el último en lugar del primero?
¡Gracias por adelantado!
expectGET
envíe solicitudes ... al menos fuera de la caja. En los documentos de su ejemplo con /auth.py
tiene una $httpBackend.when
antes de la $httpBackend.expectGET
y $httpBackend.flush
llamadas.
expectGet
solo está verificando si se intentó una solicitud.
$httpBackend
simulacro que realmente use la URL provista en la directiva debajo templateUrl
e ir a buscarla. Pensé passThrough
que haría esto. ¿Conoces una forma diferente de hacer esto?
.passThrough();
de esa manera, pero a partir de la documentación, he intentado algo así como:$httpBackend.expectGET('path/to/template.html'); // do action here $httpBackend.flush();
Creo que este se adapte a su uso mejor - no está queriendo atrapar la solicitud, es decirwhenGet()
, sino comprobar que se envía, y luego en realidad ¿mándalo?