你期望会发生什么? 我希望 sinon.fakeServer.requests 计数大于 1
实际发生的sinon.fakeServer.requests 始终为 null
如何繁殖
describe('--Pictures Selector--', () => {
let server, store, wrap;
beforeEach(() => {
server = sinon.fakeServer.create();
server.respondWith("GET", /\/api\/users/, [
200, {"Content-Type":"application/json"}, JSON.stringify(mock_pictures_list_store)
]);
store = new Pictures_List_Store([]);
wrap = mount(
<Selectable_Picture_List store={store} />
);
axios.get('http://localhost:9157/api/users/5/images/30/0');
console.log("%c server.requests", "color: #C78B41", server.requests);
});
afterEach(() => {
server.restore();
});
it('render drop zone', () => {
server.respond();
console.log("%c server.requests", "color: #C78B41", server.requests);
expect(wrap.find('Dropzone')).to.have.length(1);
});
});
我直接在测试代码中调用
axios.get
请求,它也在 react.js 组件的componentWillMount
方法中调用
axios.get()
是异步的。 这意味着当您的console.log
行运行时,还没有创建xmlhttprequest
。
谢谢你的回答。 但是在我使用server.autoRespond = true;
或server.respondImmediately = true;
或server.respond();
server.requests 的情况下仍然是空的。 那些东西不起作用是对的吗?
有没有办法用 fakeServer 启动 HTML 测试?
有没有办法用 fakeServer 启动 HTML 测试?
是的,有。
在上面的beforeEach
查看请求的解决方案有两个:
beforeEach
函数console.log
更改如下所示:
beforeEach(done => {
// ...
axios.get(...);
setTimeout(() => {
console.log("%c server.requests", "color: #C78B41", server.requests);
done();
});
});
哇。 那是有效的! 谢谢。 最后,我找到了构建所需测试的方法。
最有用的评论
是的,有。
在上面的
beforeEach
查看请求的解决方案有两个:beforeEach
函数console.log
更改如下所示: