我可以測試 - $ scope.dvModel = DienstverlenerDetailService.query(); - 相應地。我無法弄清楚如何測試註釋掉的行。當然可以使用一些指導。單元測試指導控制器返回承諾的REST調用
angular.module('dvb.controllers').controller('ServiceFacilitatorEditController', ['$scope', 'DienstverlenerDetailService', function(
$scope,
DienstverlenerDetailService) {
'use strict';
$scope.dvModel = DienstverlenerDetailService.query();
/*DienstverlenerDetailService.query().$promise.then(
function(response) {
$scope.dvModel = response.data;
},
function(error) {
}
);*/
}]);
describe('serviceFacilitatorEditController', function() {
'use strict';
beforeEach(module('dvb.ui'));
var scope, ctrl, fact, json, $rootScope, $compile, $controller, $injector;
beforeEach(function() {
inject(function(_$rootScope_, _$compile_, _$controller_, _$injector_) {
$rootScope = _$rootScope_;
$compile = _$compile_;
$controller = _$controller_;
$injector = _$injector_;
});
jasmine.getFixtures().fixturesPath = 'base/src/main/webapp/stubs/';
var f = readFixtures('servicefacilitator_0');
json = JSON.parse(f);
scope = $rootScope.$new();
var DienstverlenerDetailService = { query: function() {} };
spyOn(DienstverlenerDetailService, 'query').and.returnValue(json);
ctrl = $controller('ServiceFacilitatorEditController', {
$scope: scope,
DienstverlenerDetailService: DienstverlenerDetailService
});
});
it('it should....', function() {
expect(scope.dvModel.data).toBe(json.data);
});
});
看着),一對夫婦的其他職位,其中使用$ Q,$ rootscope.apply(和/或其他東西來解決的承諾,但我似乎無法把它粘起來。我把握這個概念,但仍然感到奇怪的是,1條單線能夠完美測試,但另一個符號不是。
我問這個的主要原因是:1 - 我想了解 2 - 我不能只是把$ scope.vdModel的承諾,我需要什麼數據屬性包裝內。
我很欣賞這個簡潔的指導,它的工作原理。 – 2014-10-01 13:57:00
@SanJayFalcon不客氣..我已經更新了另一種技術來創建模擬以及.. – PSL 2014-10-01 14:14:54