Javascript 如何在React with Jest中测试Typescript类成员

Javascript 如何在React with Jest中测试Typescript类成员,javascript,reactjs,typescript,jestjs,Javascript,Reactjs,Typescript,Jestjs,我有一个Typescript类,带有react和public和private成员函数 export class Myclass { private itemList: SomeItem[]; constructor(params) { } public method1() { } private method2() { } } 如何使用jest在代码中测试method1和method2。我可以为已导出且不是类成员的函数执行此操

我有一个Typescript类,带有react和public和private成员函数

export class Myclass {
    private itemList: SomeItem[];

    constructor(params) {

    }

    public method1() {

    }

    private method2() {

    }
}

如何使用jest在代码中测试method1和method2。我可以为已导出且不是类成员的函数执行此操作。但是如何为类成员执行此操作。

您必须创建该类的实例,然后在测试中调用其公共方法。这是没有办法的

首先,您需要一个实例

const instance=new MyClass 然后,您可以直接调用method1来测试它

expectinstance.method1.toBe。。。 对于方法2,您有3个选项

使用@ts忽略:

//@ts忽略 expectinstance.method2.toBe。。。 作为任何一方:

expectinstance as any.method2.toBe。。。 //方法2上没有类型安全 更改为受保护并扩展:

类MyClass{ 受保护的方法2{} } 类MyClassTester扩展了MyClass{ 公共运行测试{ 期待这个。方法2。期待。。。 } //或 public Method2 Accessor…args:any[]{ 返回此。方法2…args } } const instance=新的MyClassTester instance.runTests //或 expectinstance.method2Accessor.toBe。。。 //全类型安全
在测试开始时,公共方法应该对您可用