У меня есть следующая функция в компоненте React:
parentFunction: function(items){
let variableOfInterest = this.callThisFunction().toArray().filter((ele) => {
if(obj[ele.get('id')]){
return ele
}
}).map((ele) => ele.get('id'))
this.setState({newState:variableOfInterest})
}
Я могу написать тест для вызова callThisFunction с помощью заглушек, но не смог выяснить, можно ли использовать sinon или chai для слежения за значением variableOfInterest. Я хотел бы написать тест, в котором я могу передать аргумент и использовать «ожидание» для проверки значения результата. На самом деле не имеет смысла возвращать значение в конце - и делать это только для теста кажется ненужным. Я также хотел бы иметь возможность проверить результат вызова toArray(), а также filter(), если это возможно. Спасибо за любое понимание!
Это мой тест на вызов callThisFunction():
it('should call callThisFunction() once', () => {
let callThisFunctionStub = sinon.stub(prototype, 'callThisFunction')
let stub = callThisFunctionStub.callsFake(() => objectToReturn)
prototype.callParentFunction(items)
sinon.assert.calledOnce(stub)
})
variableOfInterest
, не имеет побочных эффектов, это мертвый код, и его можно просто удалить. Переменная вообще нигде в коде не используется. - person marvinhagemeister   schedule 11.09.2017state
напрямую? Или вам, возможно, придется подумать о заглушкеsetState
, чтобы проверить, являются ли параметры, с которыми он вызывается, теми, которые вы ожидаете (или хотите утвердить). - person tyskr   schedule 11.09.2017