Итак, я столкнулся с этой проблемой, когда у меня есть от 4 до 5 вызовов API, отправленных в componentDidMount
, и я хочу высказать ответ для некоторых, чтобы протестировать сценарии.Вот как мой componentDidMount
выглядит как
this.updateTokenHOC(this.getCommentsData)
this.updateTokenHOC(this.checkReviewer)
this.updateTokenHOC(this.getStepDataFromServer,1)
this.updateTokenHOC(this.getStepDataFromServer,2)
this.updateTokenHOC(this.getStepDataFromServer,3)
this.updateTokenHOC(this.getStepDataFromServer,4)
this.updateTokenHOC(this.getStepDataFromServer,5)
Да, все это вызовы API.Я пробовал с axios-mock-adapter , где я издеваюсь с URL
, Regex
запросами. Когда я выполняю вызов axios из среды тестирования, он дает мне ложный ответ.но эти вызовы меняют состояние, которое я не нахожу в своем состоянии.
Тестирование не смоделировало этот вызов.как вы можете видеть для отладки, я сделал свойство test в состоянии
getCommentsData(config) {
const type = this.state.viewType
const id = this.state.requestId
instance.get(`/review/sections?request_id=${id}&request_type=${type}`, config)
.then((response) => {
this.setState({test:'iam in comments data'})
if (response.status === 200) {
for (let step in response.data.sections) {
if (response.data.sections[step].section_type === 'device_quota') {
this.setState({
...this.state,
steps: {
...this.state.steps,
step1: {
...this.state.steps.step1,
comments: response.data.sections[step].comments,
},
}
})
}
Альтернативное решение может быть, если я могу протестировать этот метод отдельно, как в энзиме wrapper.find ('ViewReview'). instance (), но иметьне удалось с этим, а.
PS я пробовал Nock , Jest-axios-mock (это работает, но для нескольких запросов я не могу высказать ответ для всех), moxios