【发布时间】:2018-01-26 21:53:57
【问题描述】:
我正在尝试测试组件方法,该方法在内部执行对外部资源的网络调用。阅读文档后,我仍然不知道该怎么做。任何人都可以帮忙吗?这是我的代码(为简洁起见隐藏了一些部分):
我的组件:
import React from 'react'
import ResourceService from '../../modules/resource-service'
export default class SliderComponent extends React.Component {
setActiveSlide = (activeSlide) => {
ResourceService.getData({
id: activeSlide,
}).then((data) => {
if (data) {
this.setState({
data,
})
}
})
}
}
资源服务:
import axios from 'axios'
export default class ResourceService {
static getData(params) {
return axios.post('/api/get_my_data', params)
.then((resp) => resp.data)
}
}
期望的测试(据我了解):
import React from 'react'
import { mount, configure } from 'enzyme'
import SliderComponent from '../../../app/components/slider'
test('SliderComponent changes active slide when setActiveSlide is
called', () => {
const wrapper = mount(
<SliderComponent />
);
wrapper.instance().setActiveSlide(1);
// some state checks here
});
我需要在SliderComponent 内模拟ResourceService.getData 调用,我真的不明白怎么做...
【问题讨论】: