私はエラーがあることを確認するためにfindRenderedComponentWithTypeを使用し、チャイのassert.throwsを使用するImは動作しません。ReactTestUtils findRenderedComponentWithTypeチャーによる検出エラーが発生していませんか?
すべての最初:
TestUtils.findRenderedComponentWithTypeドキュメント:
expects there to be one result and returns that one result, or throws exception if there is any other number of matches besides one.
私は関数を使用する場合(期待して、正しいと)、イムは、エラーを取得。 しかし、私はチャイと正しくそれを主張するようです: 私はassert.throws(TestUtils.findRenderedComponentWithType(element, component), /(Error)/)
しようとしました。しかし、それは私がエラーを取得していていても、テストが失敗したと言っている:
Error: Did not find exactly one match for componentType:function (props, context, updater) {
[...]
}
ような何かをしたいと思うでしょう。私は実際にはあまりにも前のことを読んで、私はまだ私の方法や関数が定義によって異なっている実感が、その後はしませんでしたこれはどうやってdiffを作ったのか分かりません。最初のパラメータで何が実行されたら、何が出力されるのか確認してください。それはコールバックと関係がありますか? – user308553
あなたの最初の実装は、関数(またはメソッド)を渡していませんでした。 'TestUtils.findRenderedComponentWithType(要素、コンポーネント)'は最初に実行され、Componentオブジェクトを返すか、エラーをスローします。だから本当にあなたはそのタイプの1つを渡しています。 どのように実装されるか考えてみましょう。それは関数を受け取り、それをtry/catchブロックにラップして、それを実行します。あなたはそれを実行していたのですが、シーンの裏でそれがラップされていたのですが、それまでにはそれは遅すぎました。エラーがスローされました – ken4z
補足として、https://github.com/airbnb/enzymeを参照してください。私はReactTestUtilsライブラリが(特にこれらのメソッド名で)動作する痛みの一部であることがわかりました。その結果、Enzymeが利用可能になる前に私自身が作成しました。 – ken4z