我在这里学习 TDD React并且不了解以下测试情况:
it('Correctly updates the state after AJAX call in `componentDidMount` was made', (done) => {
nock('https://api.github.com')
.get('/users')
.reply(200, [
{ 'name': 'Reign', 'age': 26 }
]);
// Overwrite, so we can correctly reason about the count number
// Don't want shared state
wrapper = mount(<UsersListComponent />);
setTimeout(function() {
expect(wrapper.state().usersList).to.be.instanceof(Array);
expect(wrapper.state().usersList.length).to.equal(1);
expect(wrapper.state().usersList[0].name).to.equal('Reign');
expect(wrapper.state().usersList[0].age).to.equal(26);
nock.cleanAll();
done();
}, 1500);
});
nock
使用伪造请求的目的是什么?这个请求没有做任何事情,我不确定响应的去向。我认为TDD方法是编写测试(从包装器开始的代码),看到它失败,然后在实际组件中使用真正的ajax调用进行测试。我不明白 nock 在这里做什么。