Javascript 如何用笑话刺探函数

Javascript 如何用笑话刺探函数,javascript,node.js,jestjs,Javascript,Node.js,Jestjs,我在主函数中调用了一些单独的函数。我怎么能开玩笑地窥探这些函数呢 我有这样一个函数: const insertRecord = async (image) => { const record = new Branch(image) await record.save() } const deleteRecord = async (image) => { const record = new Branch(image) await record.delete(

我在主函数中调用了一些单独的函数。我怎么能开玩笑地窥探这些函数呢

我有这样一个函数:

const insertRecord = async (image) => {
   const record = new Branch(image)
   await record.save()
}

const deleteRecord = async (image) => {
   const record = new Branch(image)
   await record.delete()
}

export const main = async (event, image) => {
   if (event === insert) insertRecord(image)
   if (event === delete) deleteRecord(image)
}
我有另一个带有测试的文件,我导入了main函数


我正在尝试测试主函数是否使用正确的参数调用insertRecord,我该如何做?

您不知道-这些函数不是公共API的一部分,它们是实现细节。测试与协作者的交互,在本例中是
分支
。但是,由于您
new
更新了它,所以这就变得更加困难了,所以请仔细阅读依赖项反转。谢谢您的回答。。如果我导出其他函数,并在test arquive中导入,我将更改实现。@jonrsharpe。。。我可以监视它们吗?Jest提供了广泛的模拟功能,请参见例如。但是您应该只对协作者使用测试加倍;如果
main
正在同一模块中使用其他函数,这同样是一个实现细节,那么您不能也不应该模拟这些函数。您不可以-这些函数不是公共API的一部分,它们是实现细节。测试与协作者的交互,在本例中是
分支
。但是,由于您
new
更新了它,所以这就变得更加困难了,所以请仔细阅读依赖项反转。谢谢您的回答。。如果我导出其他函数,并在test arquive中导入,我将更改实现。@jonrsharpe。。。我可以监视它们吗?Jest提供了广泛的模拟功能,请参见例如。但是您应该只对协作者使用测试加倍;如果
main
正在同一模块中使用其他函数,这也是一个实现细节,那么您不能也不应该模拟这些函数。