Я новый, чтобы реагировать и шутить, и мне очень сложно написать единичный тест для следующего кода.
Мой код реакции работает хорошо, но я не могу определить его часть тестирования. Я попытался заглянуть в несколько похожих сообщений, но все еще не мог понять это правильно.Единичное тестирование с помощью Jest on React Components
Вот мой Реагировать компонент (MySignUpForm.js):
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;
Мой файл шуткой, который находится в тестов папка (MySignUpFormTest.js):
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
});
});
Я хочу протестировать изменение значения переключателя.
Благодарим вас заблаговременно.
@artofatihThanks для ваших предложений. Все еще трудно понять это. Вот очень простой пример, в котором я пытаюсь проверить с помощью шутки. Не могли бы вы помочь мне выяснить, почему это не работает? plnkr.co/edit/ZHTrRy7zKGQIXoKbpvbM –
https://jsbin.com/gazoguneji/edit?js,console – artofatih
Этот работает для меня, спасибо большое. –