ter*_*roi 3 javascript unit-testing
测试该函数的正确方法是什么,不返回或返回NaN.考虑:
require('assert');
var functionUnderTest = function() {
return NaN;
}
// mocha test for above function
describe('Function returning NaN', function() {
it('shall return NaN', function() {
assert.equal(functionUnderTest(), NaN); // AssertionError: NaN == NaN
assert.notEqual(functionUnderTest(), NaN); // No AssertionError
});
});Run Code Online (Sandbox Code Playgroud)
我特别想测试该函数不返回NaN.我知道IEEE754指定类型NaN ==="数字"并且它不等于它自己(或任何其他数字)并且Javascript实现了浮点数,就像IEEE754定义它们一样.
但是如何测试该函数会返回还是不返回NaN?
为什么不使用isNaN函数并执行类似的操作:
require('assert');
var functionUnderTest = function() {
return NaN;
}
// mocha test for above function
describe('Function returning NaN', function () {
it('shall return NaN', function () {
assert.equal(isNaN(functionUnderTest()), false); // AssertionError: NaN == NaN
assert.notEqual(isNaN(functionUnderTest()), true); // No AssertionError
});
});
Run Code Online (Sandbox Code Playgroud)
如果你在浏览器上可能你必须使用这样的功能: Number.isNaN(NaN)
| 归档时间: |
|
| 查看次数: |
896 次 |
| 最近记录: |