私は冗談を使用している、と私は次のようにいくつかのコンポーネントを持っている:Reactコンポーネントをテストするとき、非ライフサイクルメソッドを直接呼び出す方法はありますか?
var TestClass = react.createClass({
foo: function() {
return "test";
},
render: function() {
return <div />;
}
});
そして、私が特にTestClass
「foo
メソッドのユニットテストを書きたいです。
私はCall a React component method from outsideが、これは可能なはず提案したことを見た - 単にテストでコンポーネントをレンダリングし、それを呼び出す:
describe("TestClass", function() {
it("should access internal methods", function() {
var test = <TestClass />
expect(test.foo()).toBeTruthy()
}
});
その質問の答えから、私はこのテストに合格する期待が、代わりになります
test.fooは関数ではありません
は、私はその答えを誤解がありますか?
一般的に、この方法で非ライフサイクルメソッドをテストできる方が良いでしょう。これはより細かくなりますが、これが不可能な場合は正常な代替方法がありますか?
たとえば、メソッドがこの能力を持たないコンポーネントの子に渡されたメソッドをテストする方法はありますか?
あなたのテストの変数 'test'は、クラスのインスタンスではなく、レンダリングされたコンポーネント(または' .renderIntoDocument'が返すもの)であると思います。 –
これは、私がスタックオーバーフローのために考案した例を一緒に打つことで得られるものです! – ttrmw
'expect(TestClass.prototype.foo())を編集します。toBeTruthy();' –