Mam wiele testów w Jasmine i Karma, które polegają na sprawdzaniu szyderstwa HTTP httpBackend HTTP. Kiedy dziś uaktualniłem Angular, przestali pracować.Jasmine httpBackend testy przerwane podczas aktualizacji Angular 2.21 do 2.25
Załóżmy, że mam coś takiego w moim teście Jasmine:
// Arrange
httpBackend.expect('POST', 'https://localhost:44300/api/projects/1/samples').respond(fakedDto);
// Act
scope.updateSamples();
httpBackend.flush();
i na ostatniej linii, to było doskonale ok wcześniej, otrzymują:
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
Ponadto mam zwykłą konfigurację Aby podsumować testy:
afterEach(function() {
httpBackend.verifyNoOutstandingExpectation();
httpBackend.verifyNoOutstandingRequest();
});
, który zaczął generować następujący błąd:
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
Doceniam kilka sugestii, jak sprawić, aby wszystko działało ponownie. Czy są ostatnio jakieś zmiany w testowaniu httpBackend?
Mam podobny problem z httpBackend.flush() i $ zakres zastosowania $(). Nie dostaję "$ digest już w toku", ale dostaję "TypeError: undefined nie jest funkcją", gdy wywołuję jedną z powyższych metod kątowych w testach jaśminu w 1.2.25, ale nie w Angular 1.2.22. –
Czy możesz napisać nieco więcej o swoim teście? Błąd "$ digest już w toku" ma miejsce, jeśli zadzwonisz do $ scope. $ Apply on the wrong location. Po pierwsze, wydaje się, że test jest w porządku, może błąd w testowanym kodzie? – Nico
Problem, który myślę, że wersja makiet kątowych musi być taka sama jak kątowa, więc czy ulepszyliście również makiety kątowe? – laurent