我试图找到最好的方法来测试使用Jest用TypeScript编写的Azure函数。这需要使用满足以下接口的日志属性将上下文对象传递到其中:
interface Logger {
(...args: any[]): void;
error(...args: any[]): void;
warn(...args: any[]): void;
info(...args: any[]): void;
verbose(...args: any[]): void;
}我不在乎测试对这些方法的调用,我只关心将一个有效的函数传递给对象。我正在寻找创建模拟函数的最快方法,以允许调用接口中的任何方法,而不必为测试目的显式定义自己的Logger实现。
我本来希望它能与jest-mock-extended的mockDeep<T>函数一起工作,但却无法让它工作。我宁愿避免使用像Moq.ts这样的专用包。有什么简单的方法可以根据这个界面创建一个模拟函数,使用(ts-)jest的内置工具吗?
发布于 2022-11-02 17:01:58
我想您已经在应用程序中实现了Logger。您可以使用jest的jest.createMockFromModule(moduleName)生成实现的自动模拟
https://stackoverflow.com/questions/74290342
复制相似问题