最近ReactコンポーネントのcomponentDidMount
メソッドで条件付きで呼び出されるカスタムメソッドがいくつかあることをテストしたいと思っていました。Jestを使用してcomponentDidMountのメソッド呼び出しを偵察する
componentDidMount() {
if (this.props.initOpen) {
this.methodName();
}
}
私はモック/スパイのためのjest.fn()
が含まれて私のテストフレームワークとして冗談を使用しています。私は、これは、次のような何かを行うことによって、Sinonでテストすることはかなり些細なことだろうと読んだ:
sinon.spy(Component.prototype, "methodName");
const wrapper = mount(<Component {...props} />);
expect(wrapper.instance().methodName).toHaveBeenCalled();
私はそうのような冗談でこれを再作成しようとしています:
Component.prototype.methodName = jest.fn();
const wrapper = mount(<Component {...props} />);
expect(wrapper.instance().methodName).toHaveBeenCalled();
このコード次のエラーがスローされます。
jest.fn() value must be a mock function or spy.
Received:
function: [Function bound mockConstructor]
Jestでこの機能をテストすることはできますか?そしてもしそうなら、どうですか?
ありがとうございました!それはちょうど数ヶ月前、19.0.0でちょうど出てきたようです。私はドキュメントでそれをスキップしたとは思わない。 – seansean11
あなたは歓迎です – Jonathan
コンポーネントの 'methodName()'関数を実際に呼び出すか、それともそれを偽っているのでしょうか? – prime