如何在 ts-mock 中模拟导入的函数
Posted
技术标签:
【中文标题】如何在 ts-mock 中模拟导入的函数【英文标题】:How to mock imported function in ts-mock 【发布时间】:2022-01-24 04:30:52 【问题描述】:我是 typescript 的新手,并且在玩 aws-lambda。
我正在尝试对我的处理程序进行单元测试,因此我需要模拟服务类,以便它返回一些模拟数据
下面我有一个从域服务获取数据的简单函数。
处理程序:
服务:
测试:
当我使用npx mocha
运行测试时,它显示:
【问题讨论】:
【参考方案1】:看起来您有一个函数调用,您需要在其中传递对模拟函数的引用:
mockito.when(mockedService.getAllDomain()).thenResolve([]);
应该是:
mockito.when(mockedService.getAllDomain).thenResolve([]);
^ Without the function call brackets ()
顺便说一句,在 mocha 中使用 sinon 之类的东西来模拟更习惯用语。我提到这一点是因为我不确定您找到的库是否适合模拟依赖项 - 我认为您需要重构代码以允许注入由 ts-mockito 创建的模拟。
【讨论】:
以上是关于如何在 ts-mock 中模拟导入的函数的主要内容,如果未能解决你的问题,请参考以下文章