Angular $q承诺使用摩卡,柴,西农进行单元测试
Angular $q promise Unit testing using Mocha, Chai, Sinon
我正在尝试让我简单的 angualr $q promise 单元测试工作。但是我一直在让它工作时遇到问题。这是我的角度文件。
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});
}]);
我正在使用摩卡,柴和西农进行单元测试。这是我的测试文件。
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?
});
});
});
任何建议将不胜感激。谢谢,干杯!
第一个命题
您可以使用 mocha 的回调函数以及角度 $timeout.flush(( 来测试异步代码
it('should have a properly working promise', function(done) {
expect($scope.promise).to.be.defined;
$scope.promise.then(function() {
done();
});
$timeout.flush();
});
第二个命题(摩卡推荐(
您可以使用 https://github.com/domenic/chai-as-promised 并返回承诺。您的代码应如下所示
it('should increment the input if number given', function() {
return $scope.addOne(1).should.eventually.equal(2);
});
相关文章:
- 找不到模块'它'当用摩卡/柴测试时
- 如何将 XML 文件包含在摩卡测试用例中
- 用于摩卡测试的 CLI 调试器
- 如何在摩卡测试中使用“定义”
- 错误:使用摩卡测试时找不到模块
- 我可以从摩卡测试MarkLogic SJS吗
- 用摩卡测试失败的承诺'内置的promise支持
- 使用带量角器的摩卡无法通过超时测试
- 未定义的Es6级在单元测试中与大口摩卡
- 从命令行一次运行大量摩卡测试的好方法是什么
- 如何在多个文件中设置摩卡测试用例的执行顺序
- 摩卡/柴异步测试 'done()' fn 不起作用
- 没有数据的摩卡单元测试
- 摩卡 API 测试 - PUT 路线
- 为呈现的页面设置一个简单的幻影/摩卡测试
- 从节点运行摩卡测试
- Angular $q承诺使用摩卡,柴,西农进行单元测试
- 在客户端摩卡单元测试期间使用外部类
- 如何测试摩卡中未捕获的错误
- Karma(摩卡)-每当单元测试失败时,意外的令牌N