Модульный тест: как я могу улучшить следующий тест - реагировать с помощью шутки и энзима - PullRequest
0 голосов
/ 30 января 2019

Основной файл: вот основной файл с 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...