Я создаю приложение на основе Breeze и Angular.
Они довольно хорошо работают вместе, но модульный тест представляет собой проблему.
Это довольно ванильный тест, но Бриз продолжает входить в середину:
describe('myController', function () {
beforeEach(inject(function ($injector) {
module('app');
$httpBackend = $injector.get('$httpBackend');
authRequestHandler = $httpBackend.whenGET().respond(200,
{"someStrings": ["foo", "bar"]})
//more uninteresting code...
createController = function () {
return $controller('myController', { '$scope': $rootScope });
};
}));
it('should fetch authentication token', function () {
$httpBackend.expectGET('/auth.py');
var controller = createController();
$httpBackend.flush();
});
Проблема в том, что Breeze продолжает инициализироваться. При выполнении я получаю следующее сообщение:
Error: cannot execute _executeQueryCore until metadataStore is populated.
//or,with different get: ... $httpBackend.when('GET', '/auth.py')
// .respond({ userId: 'userX' });
Error: Unexpected request: GET breeze/Breeze/Metadata No more request expected
Как мне предотвратить, имитировать или заглушить Breeze, чтобы он не мешал моим тестам... Например, эти тесты нацелены на аутентификацию, а не на данные.