我有一个类,它有一个调用导入模块的构造函数的构造函数
...
constructor(ctx: Context) {
this.service = new Service(ctx)
}
我想测试这个类,但想存根服务,因为我只想测试这个类的给定方法。所以,在我的测试中,我创建了一个像这样的存根实例
...
const serviceStub = sinon.createStubInstance(Service)
const controller = new Controller(ctx)
serviceStub.create.resolves(null)
但是,当我运行测试时,出现以下错误
<块引用>希望在对象上存根方法,但没有找到
这来自我创建存根实例的行
const serviceStub = sinon.createStubInstance(Service)
为什么当我有多个方法时,它会抱怨对象 (Service
) 上没有方法?测试运行在那条线上崩溃,没有进入任何测试代码,所以我省略了。
Sinon 版本:11.1.2
答案 0 :(得分:0)
在 sinon 包中执行一些 console.log
之后,我看到这些方法没有被公开。答案是改变使用箭头函数的类方法。