ReactとJestの新機能です。次のコードの単体テストを書くのは非常に難しいです。
私の反応コードはうまくいっていますが、テストの一部分を理解することができませんでした。私はいくつかの同様の記事を調べようとしましたが、それでも正しいことを得ることができませんでした。 テストフォルダ(MySignUpFormTest.js)であるユニットテスト(Jest with React)コンポーネント
var React = require('react');
var ReactDOM = require('react-dom');
var profileFor;
var Gender;
var MySignUpForm = React.createClass ({
onRequiredGender: function (e) {
Gender= e.currentTarget.value
},
render : function() {
return (
<div className="col-sm-6 col-xs-6 r_pad_0">
<input className="myRadio" type="radio" name="gender" value="Male" onChange={this.onRequiredGender}/>
<span className="l_pad_5">Male</span>
</div>
<div className="col-sm-6 col-xs-6 r_pad_0">
<input className="myRadio" type="radio" name="gender" value="Female" onChange={this.onRequiredGender}/>
<span className="l_pad_5">Female</span>
</div>
)
},
});
module.exports = MySignUpForm;
私の冗談ファイル:
jest.unmock('../MySignUpForm');
//import React from 'react';
import ReactDOM from 'react-dom';
import TestUtils from 'react-addons-test-utils';
import MySignUpForm from '../MySignUpForm';
describe('MySignUpForm',() => {
it("changes the checked state when clicked",() => {
var inputs = TestUtils.scryRenderedDOMComponentsWithClass(MySignUpForm, 'myRadio');
inputs.change = jest.genMockFunction();
expect(inputs[0].getDOMNode().checked).toBe(false);
TestUtils.Simulate.change(inputs[1], {target: {value: 'Female'}});
expect(inputs[0].getDOMNode().checked).toBe(false);
expect(inputs[1].getDOMNode().checked).toBe(true);
expect(inputs.change).toBeCalled(); //Fails
expect(inputs.change.mock.calls.length).toBe(1); //Fails too
});
});
私がテストしたい。ここ
は、私は、コンポーネント(MySignUpForm.js)と反応でありますラジオボタンの値の変更。
ありがとうございます。
@artofatihThanksを行う必要があり、なぜGoogleの中の小さなヒント
検索。まだそれを理解することは難しいと思っています。ここでは、私がjestを使ってテストしようとしている非常に基本的なサンプルを示します。なぜこれが動作していないのか理解してもらえますか? plnkr.co/edit/ZHTrRy7zKGQIXoKbpvbM –
https://jsbin.com/gazoguneji/edit?js,console – artofatih
これは私のために働いています、ありがとうございます。 –