【发布时间】:2020-02-23 06:11:29
【问题描述】:
我正在尝试为这样的函数编写单元测试:
export class newClass {
private service: ServiceToMock;
constructor () {
this.service = new ServiceToMock()
}
callToTest () {
this.service.externalCall().then(()=> {
//Code to test
})
}
}
为了测试这段代码,我需要模拟服务,因为它调用了类之外的函数,但问题是它是私有的。
我究竟如何用 jest 模拟私有变量?该类创建了自己的实例,因此甚至可以模拟出来吗?
【问题讨论】:
-
为什么不能使用
if (process.env.NODE_ENV === 'test') { this.service = new MockedService(); } else { this.service = new ServiceToMock(); }? -
我不知道你能做到这一点。不过,仅仅为了测试而更改生产代码似乎并不理想。
-
你能编辑你的代码吗?您的代码不正确
-
但标题是 Jest,不是 Jasmine
标签: reactjs typescript unit-testing jestjs