在javascript中测试承诺处理不起作用
在源代码中,我对Promise的成功解析进行了一些处理:在javascript中测试承诺处理不起作用,javascript,jasmine,Javascript,Jasmine,在源代码中,我对Promise的成功解析进行了一些处理: function saveChanges() { this.AppsSdkResource_ .write(appssdkPackagePublishDetails) .then( function(response) { ... some processing ... }.bind(this)); } 在测试中,我将“writePackageP
function saveChanges() {
this.AppsSdkResource_
.write(appssdkPackagePublishDetails)
.then(
function(response) {
... some processing ...
}.bind(this));
}
在测试中,我将“writePackagePublishDetails”的模拟行为设置如下:
var createSpyReturningPromise = function($q, name) {
var defer = $q.defer();
var spy = jasmine.createSpy(name).and.returnValue(defer.promise);
spy.defer = defer;
return spy;
};
appResource.write = createSpyReturningPromise($q, 'write');
appResource.write.defer.resolve(
dummyResponse);
ctrl.saveChanges({$valid: true}); // Test the method of interest.
mockClock.tick();
.. do assertions for the "then" processing ...
但是我发现源文件中的“then”代码没有在resposne to mockClock.tick()中执行,并且在调用源文件中的“then”代码之前,先执行该语句之后的测试代码
我做错了什么?非常感谢您的帮助。我不得不这么做
scope.$digest();
done();
为了得到解决的承诺。我不得不这么做
scope.$digest();
done();
让承诺得到解决