我上下打量并尝试了各种各样的东西,以使E2E passThrough()实际工作。只有示例适用于模板。我不认为它实际上可以工作,但如果有人见过一个工作的例子,我很乐意看到它。基本上我想在我的Karma测试中使用真正的XHR调用而不是模拟。
这就是我所处的位置 - 我尝试了很多变化 - 现在我得到一个未知的提供者:cartServiceProvider错误 - 有时我会注入但是接下来是其他的。
myAppDev = angular.module('myApp', ['ngMockE2E']);
myAppDev.run(function($httpBackend) {
$httpBackend.whenPOST(/^api\/cart\/save/).passThrough();
});
beforeEach(angular.module('myApp'));
beforeEach(inject(function(_$httpBackend_, _$rootScope_, _$http_e) {
$scope = _$rootScope_;
$http = _$http_;
$httpBackend = _$httpBackend_;
}));
describe('#createOrder()', function() {
it('should return an order ID', function(done) {
inject(function(cartService) {
$scope.$apply(function() {
cartService.createOrder(function(res) {
done();
});
});
})
});
});
样品服务:
angular.module('myApp').factory('cartService', function($http) {
Cart.prototype.createOrder = function(callback) {
var self = this;
var data = {}
$http.post('/api/cart/save', data ).success(function(res) {
self.order = res.id;
callback(res);
});
};