我正在尝试为以下代码编写单元测试用例
//index.js
var d = require('./lib/someFile.js');
var i = require('./lib/someFile2.js');
d.download(url, certPath, logger)
// Import into custom keystore
.then(function () {
debugger;
return i.i1(java, certPath, dssAppServer, logger);
})
// Import into java keystore
.then(function () {
return i.i2(java, certPath, dssAppServer, logger);
})
// Import into windows root store
.then(function () {
return i.i3(certPath, logger);
})
.then(function () {
logger.info('Successfully install DSS certificate.');
done(0);
}, function (err) {
logger.error(err);
done(-2);
}).done();
以下是我编写的单元测试用例
//index-spec.js
it('Should import certificates into appropriate locations', function () {
var idc = new Module('the file containing the above code', null);
idc.exports = context;
var promise = q.resolve(true);
spyOn(certUtil, 'findJavaPath').and.callFake(function(logger, cb) {
cb(null);
});
spyOn(d, 'download').and.callThrough();
spyOn(i, 'i1').and.returnValue(promise);
spyOn(i, 'i2').and.returnValue(promise);
spyOn(i, 'i3').and.returnValue(promise);
idc.load(file)
});
上面的测试用例运行良好,但是没有调用方法i1,i2和i3,因此d.download之后没有覆盖。我使用的是茉莉花和伊斯坦布尔。