templateUrl
Tanımlı bir AngularJS direktifim var . Jasmine ile birlikte test etmeye çalışıyorum.
Benim Yasemin JavaScript önerisi başına, aşağıdaki gibi görünüyor bu :
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');
});
});
});
});
Bunu Jasmine spec hatamda çalıştırdığımda aşağıdaki hatayı alıyorum:
TypeError: Object #<Object> has no method 'passThrough'
Tek istediğim templateUrl'nin olduğu gibi yüklenmesi - kullanmak istemiyorum respond
. Bunun ngMockE2E yerine ngMock kullanılmasıyla ilgili olabileceğine inanıyorum . Suçlu buysa, birincisi yerine ikincisini nasıl kullanırım?
Şimdiden teşekkürler!
expectGET
istekleri gönderdiğini sanmıyorum ... en azından kutudan çıkar. Gelen dokümanlar ile örnek /auth.py
bir sahiptir $httpBackend.when
öncesinde $httpBackend.expectGET
ve $httpBackend.flush
çağrılar.
expectGet
sadece bir isteğin denenip denenmediğini kontrol etmektir.
$httpBackend
taklide direktifte sağlanan URL'yi gerçekten kullanmasını ve onu almasını söylemenin bir yolunu bulmalıyım templateUrl
. Bunu passThrough
yapacağını düşündüm . Bunu yapmanın farklı bir yolunu biliyor musunuz?
.passThrough();
bu şekilde kullanmadım, ancak belgelerden şöyle bir şey denediniz mi:$httpBackend.expectGET('path/to/template.html'); // do action here $httpBackend.flush();
Sanırım bu sizin kullanımınıza daha uygun - isteği yakalamak istemiyorsunuz, yaniwhenGet()
bunun yerine gönderildiğini kontrol edin ve sonra aslında gönder?