Naprawdę ciężko mi się nauczyć, jak używać żartu. Wszystkie tutoriale, które napotkam, uczą cię, jak przetestować skrypt, który renderuje do domingu takiego jak <App />
z migawkami lub bez nich. Inne samouczki wyjaśniają, jak fałszywe testy z wejściami. ale nie mogę znaleźć samouczków, które jasno wyjaśniają i podają przykłady, których mogę użyć.Czy ktoś może podać przykład na React-Redux Jest testowanie?
Na przykład skrypt z dołu mam pomysł, jak przetestować część renderowania, ale nie wiem, jak przetestować redux lub pozostałe funkcje.
Czy ktoś mógłby podać przykład, jak przetestować poniższy skrypt, który mogę wykorzystać jako odniesienie dla pozostałych plików, które muszę przetestować w moim projekcie?
import React, { Component } from 'react';
import { connect } from 'react-redux';
import PropTypes from 'prop-types';
import CustomSearch from '../Components/CustomSearch';
import CustomToolBar from '../Components/CustomToolBar';
import Table from '../Components/Table';
import InsertButton from '../Components/InsertButton';
import UserForm from './UserForm ';
import { fetchUsers, deleteUser } from '../../actions/users';
import setModal from '../../actions/modal';
import TableColumns from '../../constants/data/TableColumns';
class Users extends Component {
constructor(props) {
super(props);
this.onInsert = this.onInsert.bind(this);
this.onDelete = this.onDelete.bind(this);
this.onEdit = this.onEdit.bind(this);
this.props.fetchUsers({ accountId: this.props.userData.account.id, token: props.userData.token });
}
onDelete(row) {
if (confirm(`Are you sure you want to delete user ${row.first} ${row.last}?`)) {
this.props.deleteUser({
registered: row.registered,
id: row.id,
accountId: this.props.userData.account.id,
token: this.props.userData.token
});
}
}
onEdit(row) {
console.log(row);
const modal =() => (<UserForm data={row} isEdit />);
this.props.setCurrentModal(modal, 'Existing User Form');
}
onInsert() {
const modal =() => (<UserForm />);
this.props.setCurrentModal(modal, 'Add New User');
}
render() {
const options = {
searchField: (props) => (<CustomSearch {...props} />),
insertBtn:() => (<InsertButton onClick={this.onInsert} />),
toolBar: (props) => (<CustomToolBar {...props} />),
onDelete: this.onDelete,
onEdit: this.onEdit,
};
return (
<Table data={this.props.users} columns={TableColumns.USERS} options={options} title="Users" />
);
}
}
User.propTypes = {
setCurrentModal: PropTypes.func.isRequired,
fetchUsers: PropTypes.func.isRequired,
deleteUser: PropTypes.func.isRequired,
userData: PropTypes.object.isRequired,
users: PropTypes.array,
};
const mapStateToProps = (state) => ({
userData: state.userData.data,
users: state.tableData.users,
});
const mapDispatchToProps = (dispatch) => ({
fetchUsers: (data) => dispatch(fetchUsers(data)),
deleteUser: (data) => dispatch(deleteUser(data)),
setCurrentModal: (modal, title) => dispatch(setModal(modal, title, null, true)),
});
export default connect(mapStateToProps, mapDispatchToProps)(User);
widziany jak nikt nie ma odpowiedzi dam wam pełne wyjaśnienie kiedy jestem wolny jutro, w jaki sposób to zrobić. Czy wiesz, jak to zrobić w ogóle, a to tylko część redux, w której łączysz elementy, których nie masz pewności? –
Mam pomysł na temat testowania migawek i podstawowe informacje na ten temat. – Eric