我有一個REST客戶端被寫入我想要編寫測試的angularJS應用程序的一部分;我嘗試過使用Jasmine(在$ httpBackend上使用passthrough),但根本無法讓它與真正的端點進行交談(這是一項要求)。
有沒有人知道一個合理的庫,允許這個?或者,茉莉花摔跤的方式?
我有一個REST客戶端被寫入我想要編寫測試的angularJS應用程序的一部分;我嘗試過使用Jasmine(在$ httpBackend上使用passthrough),但根本無法讓它與真正的端點進行交談(這是一項要求)。
有沒有人知道一個合理的庫,允許這個?或者,茉莉花摔跤的方式?
你需要注入第一$ httpbackend
describe('MyController', function() {
var $httpBackend, $rootScope, createController, authRequestHandler;
// Set up the module
beforeEach(module('MyApp'));
beforeEach(inject(function($injector) {
// Set up the mock http service responses
$httpBackend = $injector.get('$httpBackend');
// backend definition common for all tests
authRequestHandler = $httpBackend.when('GET', '/auth.py')
.respond({userId: 'userX'}, {'A-Token': 'xxx'});
// Get hold of a scope (i.e. the root scope)
$rootScope = $injector.get('$rootScope');
// The $controller service is used to create instances of controllers
var $controller = $injector.get('$controller');
createController = function() {
return $controller('MyController', {'$scope' : $rootScope });
};
$httpBackend.when('GET', "/api/rest/").respond(data_to_respond);
}));
下一個寫測試用例
it('getTypes - should return 3 car manufacturers', function() {
service.getTypes().then(function(response) {
//expect will be here
});
$httpBackend.flush();
});
你可以用量角器或別的東西 – user3232739
端到端測試測試它爲什麼如果你不使用摩卡只是想測試後端休息API – MarkoCen
如果你想測試從客戶端到服務器的真實http請求,那麼你不需要使用$ httpBackend。我已經在茉莉花寫了測試,要求真正的端點。 Jasmine支持異步測試,因此編寫與真正的rest API進行通信的測試不成問題。 – thadam