findRenderedComponentWithType
コンポーネントを使用しfindRenderedComponentWithType
て見つけるために、いくつかの単体テストを実行しようとしています。しかし、私は少し問題を抱えています。
レンダリングされた浅いコンポーネントが<Layout />
あり、その中に<UserMenu />
.
var Layout = React.createClass({
render: function(){
console.log(this.props);
return (
<div id="data-trader">
<header className="header">
<UserMenu user={this.props.user} />
</header>
<SideMenu user={this.props.user}/>
</div>
);
}
});
module.exports = Layout;
テストファイル内で、これを試しました:
describe('Layout', function() {
beforeEach(function(){
fakeDOM = TestUtils.createRenderer();
it('should exist as a component', function(done) {
expect(<Layout/>).to.exist;
done();
});
fakeDOM.render(<Layout />);
renderedFakeDOMOutput = fakeDOM.getRenderOutput();
});
it('should have login button when props.user is undefined', function(done) {
renderedFakeDOMOutput.props.user = undefined;
let UserMenuComponent = TestUtils.scryRenderedComponentsWithType(renderedFakeDOMOutput, UserMenu);
done();
});
});
ただし、scryRenderedComponentsWithType
タイプfindRenderedComponentWithType
のコンポーネントは何も見つかりませんUserMenu
。
exports
また、コンポーネントで別のファイルを作成しようとしましたUserMenu
が、同じ出力または 0 が見つかりました (配列の長さ 0) またはコンポーネントが見つからない場合のエラー ( Error: Did not find exactly one match for componentType:function UserMenu()
) を取得します。