У меня есть много тестов в Jasmine и Karma, которые полагаются на проверенные HTTP-проверки $ httpBackend. Когда я сегодня утром уговорил Углового, они перестали работать.Jasmine httpBackend-связанные тесты, поврежденные при обновлении Angular 2.21 to 2.25
Предположим, что у меня есть что-то вроде этого в моем Жасмин тест:
// Arrange
httpBackend.expect('POST', 'https://localhost:44300/api/projects/1/samples').respond(fakedDto);
// Act
scope.updateSamples();
httpBackend.flush();
и на последней строке, это было совершенно нормально до того, я получаю:
TypeError: $browser.$$checkUrlChange is not a function in C:/SVN/samplemgmt/src/ClientApp/client/bower_components/angular/angular.js (line 12502)
$RootScopeProvider/this.$get</[email protected]:/SVN/samplemgmt/src/ClientApp/client/bower_components/angular/angular.js:12502:9
createHttpBackendMock/[email protected]:/SVN/samplemgmt/src/ClientApp/client/bower_components/angular-mocks/angular-mocks.js:1481:5
@C:/SVN/samplemgmt/src/ClientApp/tests/integration/sample/samplecreationController_integration.test.js:341:9
Кроме того, у меня есть обычная конфигурация для обертывания тестов:
afterEach(function() {
httpBackend.verifyNoOutstandingExpectation();
httpBackend.verifyNoOutstandingRequest();
});
, который теперь начал генерировать следующую ошибку:
Error: [$rootScope:inprog] $digest already in progress
http://errors.angularjs.org/1.2.25/$rootScope/inprog?p0=%24digest in C:/SVN/samplemgmt/src/ClientApp/client/bower_components/angular/angular.js (line 78)
minErr/<@C:/SVN/samplemgmt/src/ClientApp/client/bower_components/angular/angular.js:78:5
[email protected]:/SVN/samplemgmt/src/ClientApp/client/bower_components/angular/angular.js:13009:9
$RootScopeProvider/this.$get</[email protected]:/SVN/samplemgmt/src/ClientApp/client/bower_components/angular/angular.js:12500:9
createHttpBackendMock/[email protected]:/SVN/samplemgmt/src/ClientApp/client/bower_components/angular-mocks/angular-mocks.js:1514:5
@C:/SVN/samplemgmt/src/ClientApp/tests/integration/sample/samplecreationController_integration.test.js:137:9
Я ценю некоторые рекомендации, как заставить все работать снова. В последнее время произошли какие-либо изменения в тестировании httpBackend?
У меня аналогичная проблема с httpBackend.flush() и $ объем $ применяется(). Я не получаю '$ digest уже в процессе', но я получаю 'TypeError: undefined не функция', когда я вызываю любой из указанных угловых методов в тестах жасмина в 1.2.25, но не в Angular 1.2.22. –
Можете ли вы опубликовать немного больше о своем тесте? Ошибка «$ digest уже выполняется» происходит, если вы вызываете $ scope. $ Применяются не в том месте. Во-первых, кажется, что вы тестируете, может быть, ошибка в тестируемом коде? – Nico
Проблема, я думаю, в том, что версия угловатых макетов должна быть такой же, как и угловатой, так же как вы улучшили угловое издевательство? – laurent