React を約 1 年間使用しましたが、不変のデータが非常に印象的でした。Clojurescript/Reagent に移行したいと考えていますが、コードをテストするための優れた方法が必要です。コンポーネントについては、次のようにしました。
- 送信した小道具に応じて、コンポーネントの出力をテストします。
- クリックなどのイベントが発生したときに、コンポーネントが正しい関数を正しいパラメーターで呼び出すことをテストします。
1 の場合は次のようになります。
function renderFFC(filters, search_criterias)
{
return TestUtils.renderIntoDocument(React.createElement(FilterIntervalNumberComponent,{filter:filters, search_criteria:search_criterias}));
}
describe("IN", function(){
it("should render search criteria - interval", function() {
var criterias = {};
var ffc = renderFFC(filter, criterias);
expect(ffc.refs[0].getDOMNode().value).toBeNull();
expect(ffc.refs[1].getDOMNode().value).toBeNull();
});
2 の場合は次のようになります。
describe("OUT", function(){
it("should change the values, then click - boolean ", function() {
//mock function
set_criteria_and_search = jest.genMockFunction();
var fbc = renderFBC(filter, {});
React.addons.TestUtils.Simulate.change(fbc.refs.yes.getDOMNode(),{nativeEvent: {target: {value: true}}});
expect(controller.set_criteria_and_search.mock.calls)
.toEqual(
[['taxes_applied',{'taxes_applied':[{value:"1"}]}]]
);
});
テストには facebook Jest を使用しました。
Clojurescript で Reagent を使用して同じことを行うにはどうすればよいですか?