我的服务简要如下:
function service($q) {
var deferred = $q.defer();
var templateService = {
notifyChangeTemplate : notifyChangeTemplate
}
return templateService;
function notifyChangeTemplate(data) {
deferred.notify(data);
return deferred.promise;
};
}
函数notifyChangeTemplate在两个不同的控制器中调用。其中一个正在通知,另一个正在使用返回的承诺。
我正在尝试为此功能编写单元测试,尝试了这个:
it('should notify the promise', function () {
var data = { test: 1 };
var promise = myService.notifyChangeTemplate(data);
promise.then(null, null, function (response) {
var x = response;
expect(x).toBe(data);
});
$scope.$apply();
});
但它不起作用,“expect(x).toBe(数据)”甚至没有被击中。
有人能给我一些如何测试这个功能的想法吗?