Основной файл: вот основной файл с 3 методами, которые необходимо протестировать.У меня есть немного кода, записанного с помощью предыдущей справки stackoverflow, но я просто хочу дважды проверить, имеет ли это смысл или правильно.Если возможно, внести изменения или улучшить код.спасибо
componentDidMount() {
if (this.props.defaultDataFromViewXML.length != 0 ) {
let localState = Object.assign({}, this.state)
localState.axis = {}
this.props.defaultDataFromViewXML.map(entry => {
let newId = shortid.generate()
localState.axis[newId] = {
axisLabel: entry,
id: newId
}
})
this.setState(localState)
}
}
addNewAxis = (obj) => {
let localState = Object.assign({}, this.state)
localState.axis[obj.id] = obj
let updateObj = {
0: {
pipe: 'chart',
action: 'transform',
transformType: 'replaceElement',
matchValue: 'axes',
axes: localState.axis
}
}
this.props.addAxisList(updateObj)
this.setState(localState)
}
deleteAxisByID = (id) => {
delete this.state.axis[id]
let updateObj = {
0: {
pipe: 'chart',
action: 'transform',
matchValue: 'axes',
axes: this.state.axis
}
}
this.props.addAxisList(updateObj)
}
Вот что у меня есть для тестирования: они все проходят в данный момент, но я, вероятно, делаю ошибку при настройке констант и также ожидаем .wrapper .. Если возможно, добавьте некоторые //комментарии к коду того, что должно быть сделано или исправление было бы чрезвычайно полезно
// jest mock functions (mocks this.props.func)
const addAxisList= jest.fn();
// defining this.props
const baseProps = {
addAxisList,
defaultDataFromViewXML : []
}
describe('Component', () => {
let wrapper;
let tree;
beforeEach(() => wrapper = shallow(<Component {...baseProps } />)); //
before each test, shallow mount the Component
it ('componentDidMount method: ',() => {
expect(wrapper.instance().state).toHaveProperty('axis')
expect(wrapper.instance().componentDidMount({localState : {}}))
});
it(' addNewAxis : addNewAxis a new axis', () => {
let obj = { id : "test"}
wrapper.instance().addNewAxis({id: {obj}});
it(' Testing Method : Deletes an axis', () => {
const action = "transform";
const pipe = "chart";
const matchValue = "axes";
const axes = {};
const addaxis = { [0]:{action, axes, matchValue, pipe}};
const { id } = baseProps;
wrapper.instance().deleteAxisByID(id);
expect(addAxisList).toHaveBeenCalledWith(addaxis);