刚开始使用Sinon,Mocha和Chai JS。将UnderscoreJS版本从1.4.4升级到1.9.1后,我不得不更新我的项目使用模板功能的方式。
以前,_.template函数以这种方式使用 -
var myTemplate = _.template("<p><%= name %></p>", {name: 'Joe Doe'});
新方式,
// `myTemplate` here is a function!
var myTemplate = _.template("<p><%= name %></p>");
// Now let's pass in the data for the template.
myTemplate({name: 'Joe Doe'}); // it returns: "<p>Joe Doe</p>"
但是,此更改导致许多现有测试用例失败。下面提到的是我需要帮助的测试用例之一 -
const sinonVar = require('sinon');
describe('testVar', function() {
var sanboxVar;
var ss = requirejs('Path to JS library');
var testVar;
beforeEach(function(done) {
console.log("Not Called"); // Never printed on console
done();
sanboxVar = sinonVar.sanbox.create();
});
it('some text here', function() {
console.log("sanboxVar: " + sanboxVar); //Printed on console as 'undefined'
ss.id = sanboxVar.stub();
});
});
On&#34; npm test&#34;,我看到了错误 -
testVar
some text here:
TypeError: Cannot read property 'stub' of undefined
at Context.<anonymous> (testPage.js) - "This is pointing to sanboxVar not defined"
我认为由于某种原因,beforeEach方法没有被调用,因此Sandoval变量没有被启动。
任何帮助将不胜感激。