我有一个调用另一个函数的函数
app.post('/', upload.single('photo'), function(req, res) {
// do what you want with req.file
});
我想验证当我调用const getArtist = (id) => {
// builds params for other function
return otherFuntion(params);
}
时,使用正确的参数调用otherFunction。
如何通过开玩笑实现这一目标?
getArtist(someValue)
答案 0 :(得分:0)
如果它是公共函数,您可以使用proxyquire在编译时模拟导入的函数。如果它是私人功能,那么你绝对不想嘲笑它。
您应该只测试otherFuntion
的返回值。
答案 1 :(得分:0)
所以你真的在调用函数 otherFuntion(params)所以我宁愿检查你的 getArtist 函数的返回是否与 otherFunction 强大的
describe('getArtist function', () => {
it('should call otherFunction with the right params', () => {
expect(getArtist(id)).toBe(otherFunction(params));
});
});
或者创建用于生成参数的特殊函数并分别进行测试。喜欢 prepareArtistParams 并在里面使用它:
const getArtist = (id) => {
const params = prepareArtistParams(id);
return otherFuntion(params);
}
describe('otherFuntion function', () => {
it('should create right params', () => {
expect(prepareArtistParams(id)).toBe(params);
});
});