此代码未通过测试
功能
function setTheme(theme) {
chartTheme = theme;
}
function getTheme() {
if (typeof chartTheme === undefined) {
chartTheme = 'dark';
}
return chartTheme;
}
测试
it('If theme is undefined, expect dark', function() {
ChartFactory.setTheme(undefined);
expect(ChartFactory.getTheme()).to.equal('dark');
});
但是,如果我将"undefined"
检查为字符串,则会通过测试。
function getTheme() {
if (typeof chartTheme === 'undefined') {
chartTheme = 'dark';
}
return chartTheme;
}
答案 0 :(得分:2)
首先请看Which equals operator (== vs ===) should be used in JavaScript comparisons?
您正在使用minSdkVersion
的严格相等运算符。严格的相等性检查类型和值是否相等。
undefined
返回字符串。
因此,
typeof
返回typeof chartTheme === 'undefined'
。
换句话说,
true
但是,
undefined !== 'undefined'