Tôi có các xét nghiệm đơn vị sau đây, và vì lý do nào đó, kiểm tra thứ hai làm cho các thử nghiệm khác thất bại.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)
})
Tôi đã tìm ra đường có vẻ như gây ra lỗi và đó là dòng httpBackend.flush()
. Tại sao chức năng tuôn ra gây ra hành vi lạ?
Các lỗi thực tế tôi nhận được từ cách chạy lệnh karma start
tại nhà ga, là:
Delaying execution, these browsers are not ready: Chrome 29.0 ....
sau một thời gian ngắn, các phiên Chrome sau đó bị treo.
Bạn đã nhận được lỗi nào? Không có điều đó, không ai có thể đoán được. – zsong
Tất nhiên! Thật là một sai lầm khủng khiếp. Đang cập nhật lỗi bây giờ ... – Sneaksta
Cố gắng tăng mức nhật ký của Karma để gỡ lỗi, để xem điều gì xảy ra. – madhead