Node.js 钩住assert.*函数
背景:我有一组在模板引擎中使用的函数,它们的输出总是转换为字符串。这意味着在测试它们时,我真正感兴趣的是它们的字符串表示 有没有办法“钩住”到Node.js 钩住assert.*函数,node.js,mocha.js,assert,Node.js,Mocha.js,Assert,背景:我有一组在模板引擎中使用的函数,它们的输出总是转换为字符串。这意味着在测试它们时,我真正感兴趣的是它们的字符串表示 有没有办法“钩住”到assert.*()中,在每次断言之前修改输入 这样可以避免每次显式转换输出: it("should foo bar", () => { assert.strictEqual("" + myFunction1(foo), "bar") assert.strictEqual
assert.*()
中,在每次断言之前修改输入
这样可以避免每次显式转换输出:
it("should foo bar", () => {
assert.strictEqual("" + myFunction1(foo), "bar")
assert.strictEqual("" + myFunction1(baz), "fiz")
})
更改assert函数不是一个好主意,因为对
assert.striefqual
的任何其他调用都会欺骗您,产生意外的输出。例如,assert.StreetQual(true,true)
将返回false
,因为“+true
不等于true
更好的替代方法是使用实用程序函数代理所有assert.striefqual
调用:
function assertWithCast (val1, val2) {
assert.strictEqual("" + val1, val2)
}
然后在测试中使用它:
it("should foo bar", () => {
assertWithCast(myFunction1(foo), "bar")
assertWithCast(myFunction1(baz), "fiz")
})