Ich habe die folgenden Komponententests, und aus irgendeinem Grund macht der zweite Test andere Tests fehlschlagen.AngularJS Jasmine Unit Tests
beforeEach(inject(function ($rootScope, _$httpBackend_, $controller, $location, mockedResource) {
scope = $rootScope.$new();
httpBackend = _$httpBackend_;
locationService = $location;
ctrlDependencies = {
$scope: scope,
resource: mockedResource,
}
var ctrl = $controller('myController', ctrlDependencies);
}));
it('should redirect to a new page', function() {
scope.pageRedirectFunction();
expect(locationService.path()).toBe('/newpage')
});
it('should delete an epic resource', function() {
httpBackend.expectGET('/api/v1/epic/1').respond({});
httpBackend.expectDELETE('/api/v1/epic/1').respond({});
// Run the deletion function
scope.deleteEpicResource()
httpBackend.flush() // This line seems to be the rebelious one
expect(scope.epicResources.length).toEqual(0)
})
Ich habe es geschafft, die Linie, um herauszufinden, dass die Fehler zu verursachen scheint, und es ist die httpBackend.flush()
Linie. Warum verursacht die Flush-Funktion seltsames Verhalten?
Der eigentliche Fehler, den ich aus Ausführen des Befehls karma start
im Terminal erhalten, ist:
Delaying execution, these browsers are not ready: Chrome 29.0 ....
nach einer Weile, stürzt die Chrome-Sitzung dann.
Welchen Fehler haben Sie bekommen? Ohne das kann niemand es überhaupt erraten. – zsong
Natürlich! Was für ein schrecklicher Fehler. Update mit dem Fehler jetzt ... – Sneaksta
Versuchen Sie Karma Log-Level zu debuggen, um zu sehen, was passiert. – madhead