我试图在componentWillMount生命周期方法中测试发出getJSON请求的组件。它具有以下代码:
api.getJSON(`users/${this.props.params.id}`)
.done((result) => {
this.setState({user: result});
});
正如您所看到的,它使用props.params.id来发出请求。我遇到的问题是在我的测试中。当我运行npm test
时,它返回无法读取未定义的属性,未定义为props.params
。我怎样才能在酶中得到这个物体?
答案 0 :(得分:1)
这是使用含有摩卡的酶的一种方法:
- 安装 jsdom npm install --save-dev --save-exact jsdom jsdom-global
- 在之前的陈述中加载jsdom(在里面描述)
before(function () {
this.jsdom = require('jsdom-global')()
})
after(function () {
this.jsdom()
})
- 现在在测试中使用 mount ,如下所示:
const someData = {data1:'yyyyyy'};
const wrapper = mount(<YourComponent yourProp={someData} />);
在您的情况下&#34; yourProp &#34;应该是参数,这样您就可以将数据传递给您的属性
希望这有帮助。