tôi sau AngularJS documentation from here
Vấn đề là tài liệu mô tả chỉ là "thành công/hạnh phúc" chi nhánh của mã này, và không có ví dụ về làm thế nào để kiểm tra nhánh "thất bại".
Điều tôi muốn làm là đặt điều kiện tiên quyết để kích hoạt mã $scope.status = 'ERROR!'
.
Dưới đây là ví dụ tối thiểu.
// controller
function MyController($scope, $http) {
this.saveMessage = function(message) {
$scope.status = 'Saving...';
$http.post('/add-msg.py', message).success(function(response) {
$scope.status = '';
}).error(function() {
$scope.status = 'ERROR!';
});
};
}
// testing controller
var $httpBackend;
beforeEach(inject(function($injector) {
$httpBackend = $injector.get('$httpBackend');
}));
it('should send msg to server', function() {
$httpBackend.expectPOST('/add-msg.py', 'message content').respond(500, '');
var controller = scope.$new(MyController);
$httpBackend.flush();
controller.saveMessage('message content');
$httpBackend.flush();
// Here is the question: How to set $httpBackend.expectPOST to trigger
// this condition.
expect(scope.status).toBe('ERROR!');
});
});
Cám ơn câu trả lời của bạn. Tôi đã cập nhật các ví dụ ... nó chỉ là một bản sao dán từ documentaton chính thức. Điều này không trả lời câu hỏi của tôi. Mô phỏng sẽ vẫn gọi nhánh 'success'. –
Tôi đã tạo một phiên bản làm việc trên Plunker và thêm liên kết vào câu trả lời chính của tôi. – jvandemo
Cảm ơn. Bạn là một anh hùng! :) –