JS-模拟函数中未初始化的类方法



假设我有下面的代码,我想测试someFunc(),但我想模拟doSomething()函数?当SomeClass只在someFunc()本身内部初始化,而不是在测试中初始化时,我如何在测试中做到这一点?

class SomeClass {
constructor(element){
this.element = element
}

doSomething(element){
...
}
}
function someFunc() {
const newClass = new SomeClass()
newClass.doSomething() // I want this to get to the mocked function
}

我在开玩笑,请帮忙!

尝试一些测试框架,其中大多数都提供间谍,允许您模拟给定类的特定函数。

例如,你可以试试Jasmine-https://jasmine.github.io/api/edge/Spy.html你会在哪里做一些类似的事情

spyOn(newClass, 'doSomething').and.returnValue(42);

Jest中有多种模拟es6类的方法:https://jestjs.io/docs/es6-class-mocks

最新更新