伪造延迟承诺解决的示例测试:
describe('Example', function() {
var $q;
var $rootScope;
var $scope;
var $timeout;
var fakePromise;
beforeEach(inject(function (_$q_, _$rootScope_, _$timeout_) {
$q = _$q_;
$rootScope = _$rootScope_;
$timeout = _$timeout_;
$scope = $rootScope.$new();
fakePromise = function (){
return new Promise(function(resolve, reject){
$timeout(function(){
resolve('foo');
}, 100);
});
};
}));
afterEach(function () {
$scope.$apply();
});
it('should wait for promise to resolve and have a result', function(){
return fakePromise().should.eventually.equal('foo'); //taken from chai-as-promised readme
});
});
自述文件说要做:
return doSomethingAsync().should.eventually.equal("foo");
我得到的错误是:
Chrome 49.0.2623 (Mac OS X 10.11.4) Example should wait for promise to resolve and have a result FAILED
Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.