0
我有一個使用服務的控制器(使用$ resource),我試圖模擬服務方法的響應。 雖然我成功地嘲笑了服務方法,包括對該方法的響應,但控制器中的回調(這是我試圖測試的代碼段,從未被調用過)。
這是我的模擬。
var props = [
{ Uid: "123", Name: "Prop 1" },
{ Uid: "456", Name: "Prop 2" },
{ Uid: "789", Name: "Prop 3" }
];
var mockPropertyService;
beforeEach(inject(function ($q) {
mockPropertyService = {
query: function() {
return $q.when(props);
}
};
}));
然後我注入我的模擬服務到我的控制器,它肯定是工作。
var controller = $controller("PropertiesCtrl", { $scope: scope, Property: mockPropertyService});
$rootScope.$apply();
expect(.......)
查詢方法在模擬服務上可用,並正在下面的代碼中的控制器中成功調用。但是回調函數沒有被調用。
這裏是控制器代碼,我想測試
$scope.loadProperties = function() {
return Property.query({ embed: 'models' }, function (properties) {
//I am trying to test this code in here
//But the test execution never gets to here
//but it also doesnt throw an exception
console.log(properties);
_.each(properties, function (p) {
p.PictureUrl = p.getThumbnailUrl();
p.Calculated = p.isCalculated();
p = Property.loadWorkflows(p);
});
});
};
我在做什麼錯誤回調函數永遠不會被調用?
任何人都可以幫助或建議我 - 我已經嘗試了所有我能想到的。
任何人沒有意見?這很明顯嗎? – Gotts