Javascript 如何在Jest中模拟类的构造函数

Javascript 如何在Jest中模拟类的构造函数,javascript,unit-testing,jestjs,Javascript,Unit Testing,Jestjs,我有这样的课 class-Foo{ 构造函数(){…} 公共酒吧(){…} } 我只想测试Foo.bar,而不调用Foo的构造函数。我怎么能这样嘲笑呢 注意:我需要一个Foo的实例,因为bar使用了一些实例变量。无论您想做什么,都不要。如果你想在不调用构造函数的情况下模拟它,那么你想测试的方法应该是静态的而不是实例?我认为有一种情况可以在不调用构造函数的情况下测试方法。假设构造函数执行了一些您希望在单独测试中获得的业务逻辑。为什么要混合单元测试?@jonathanalengrant-您所描述的

我有这样的课

class-Foo{
构造函数(){…}
公共酒吧(){…}
}
我只想测试
Foo.bar
,而不调用
Foo
的构造函数。我怎么能这样嘲笑呢


注意:我需要一个
Foo
的实例,因为
bar
使用了一些实例变量。

无论您想做什么,都不要。如果你想在不调用构造函数的情况下模拟它,那么你想测试的方法应该是静态的而不是实例?我认为有一种情况可以在不调用构造函数的情况下测试方法。假设构造函数执行了一些您希望在单独测试中获得的业务逻辑。为什么要混合单元测试?@jonathanalengrant-您所描述的就是为什么存在依赖注入的全部目的。您的构造函数中存在哪些会干扰测试的代码?你能发布一些真实的代码而不是假设的代码吗?它将有助于确定在测试您想要测试的内容时的最佳行动方案。模仿类的方法是可以的,模仿构造函数的味道真的很像你应该使用依赖注入,但很难说准确。你能直接调用
Foo.prototype.bar()
来测试它吗?否则,需要更多的信息来确定问题。无论你想做什么,都不要。如果你想在不调用构造函数的情况下模拟它,那么你想测试的方法应该是静态的而不是实例?我认为有一种情况可以在不调用构造函数的情况下测试方法。假设构造函数执行了一些您希望在单独测试中获得的业务逻辑。为什么要混合单元测试?@jonathanalengrant-您所描述的就是为什么存在依赖注入的全部目的。您的构造函数中存在哪些会干扰测试的代码?你能发布一些真实的代码而不是假设的代码吗?它将有助于确定在测试您想要测试的内容时的最佳行动方案。模仿类的方法是可以的,模仿构造函数的味道真的很像你应该使用依赖注入,但很难说准确。你能直接调用
Foo.prototype.bar()
来测试它吗?否则,需要更多信息来确定问题。