我有一个带有公共和私有成员函数的Typescript类(带有react)。
export class Myclass {
private itemList: SomeItem[];
constructor(params) {
}
public method1() {
}
private method2() {
}
}
如何使用笑话在我的代码中测试method1和method2。我可以对导出的但不是类成员的函数执行此操作。但是我该如何为班级成员做。
答案 0 :(得分:0)
您必须创建该类的实例,然后在测试中调用其公共方法。没有其他办法了。
答案 1 :(得分:0)
首先,您需要一个实例...
const instance = new MyClass()
然后,您可以通过直接调用method1
来对其进行测试...
expect(instance.method1()).toBe(...)
对于method2
,您有3个选择...
使用@ ts-ignore:
// @ts-ignore
expect(instance.method2()).toBe(...)
任意投放:
expect((instance as any).method2()).toBe(...)
// no type safety on method2
更改为protected
并扩展:
class MyClass {
protected method2() {}
}
class MyClassTester extends MyClass {
public runTests() {
expect(this.method2()).toBe(...)
}
// OR
public method2Accessor(...args: any[]) {
return this.method2(...args)
}
}
const instance = new MyClassTester()
instance.runTests()
// OR
expect(instance.method2Accessor()).toBe(...)
// fully type-safe