次のようなクラスがあるとします。
class SomeClass {
constructor(a, b) {
this.a = a;
this.b = b;
}
}
コンストラクタが正しく初期化されたことをJestでテストするにはどうすればよいですか?いう... this.a = a
およびthis.b = b
およびその逆ではないですか?
toBeCalledWith
を実行できることはわかっていますが、コンストラクタのロジックを確認できません。私もmockImplementation
を作成することを考えていましたが、この場合、ロジックを書き直すので無意味であるように見えます。
オブジェクトのインスタンスを作成し、直接チェックするだけです。 this
に設定するため、これらは基本的にパブリック値です。
it('works', () => {
const obj = new SomeClass(1, 2);
expect(obj.a).toBe(1);
expect(obj.b).toBe(2);
});
クラスを初期化した後、インスタンスのプロパティを確認するだけです。基本的には、任意の関数の副作用をテストできるのと同じです。
const a = Symbol();
const b = Symbol();
const classInstance = new SomeClass(a, b);
expect(classInstance.a).toBe(a);
expect(classInstance.b).toBe(b);