【发布时间】:2016-05-26 22:43:13
【问题描述】:
我正在尝试让我的简单 angualr $q 承诺单元测试工作。但我在让它工作时遇到了问题。 这是我的角度文件。
app.controller('theCtrl', ['$scope', '$q', function($scope, $q) {
$scope.addOne = function(num) {
var q = $q.defer();
if(angular.isNumber(num)) {
q.resolve(num+1);
} else {
q.reject('NaN');
}
return q.promise;
}
$scope.myVal = 0;
$scope.promise = $scope.addOne($scope.myVal);
// $scope.promise.then(function(v) {$scope.myVal = v }, function(err) {$scope.myVal = err});
}]);
我正在使用 Mocha、Chai 和 sinon 进行单元测试。 这是我的测试文件。
describe("Contacts App", function() {
describe("the contact service", function(){
var $scope, theCtrl, $q;
beforeEach(module('Contacts'));
beforeEach(inject(function($injector) {
var $rootScope = $injector.get('$rootScope');
var $controller = $injector.get('$controller');
$scope = $rootScope.$new();
theCtrl = $controller('theCtrl', {$scope: $scope} );
$q = $injector.get('$q');
}));
it('should have a properly working promise', function() {
// Any answers?
});
});
});
任何建议将不胜感激。谢谢,干杯!
【问题讨论】:
标签: javascript angularjs unit-testing mocha.js chai