【发布时间】:2021-01-08 22:50:57
【问题描述】:
假设我有以下模块:
foo.js
module.exports = function (x, f) {
f(x);
};
bar.js
const foo = require('./foo');
module.exports = function () {
foo(40, n => n + 2);
// ^
// f — How can I test this lambda?
};
我只需要断言当bar被调用时,foo被调用完全如上所示^
我可以测试foo 已被40 调用如下:
const td = require('testdouble');
const foo = td.replace('./foo');
const bar = require('./bar');
bar();
td.verify(foo(40, td.matchers.anything())); // Pass
但是我如何验证函数f 是一个接受一个数字,加2 并返回结果的函数?
PS:我非常清楚这并不是在测试最佳实践 101。如果我有机会以不同的方式做事,我宁愿不以这种方式进行测试。所以请幽默我。
【问题讨论】:
标签: javascript unit-testing testdoublejs