Sinon: fakeServer 请求计数始终为空

创建于 2017-06-06  ·  4评论  ·  资料来源: sinonjs/sinon

  • 诗浓版本:2.3.2
  • 环境 : karma-test-runner
  • 示例网址:
  • 您正在使用的其他库:mocha

你期望会发生什么? 我希望 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方法中调用

最有用的评论

有没有办法用 fakeServer 启动 HTML 测试?

是的,

在上面的beforeEach查看请求的解决方案有两个:

  1. 将回调传递给beforeEach函数
  2. 稍等片刻运行console.log

更改如下所示:

beforeEach(done => {
  // ...
  axios.get(...);
  setTimeout(() => {
    console.log("%c server.requests", "color: #C78B41", server.requests);
    done();
  });
});

所有4条评论

axios.get()是异步的。 这意味着当您的console.log行运行时,还没有创建xmlhttprequest

谢谢你的回答。 但是在我使用server.autoRespond = true;server.respondImmediately = true;server.respond(); server.requests 的情况下仍然是空的。 那些东西不起作用是对的吗?
有没有办法用 fakeServer 启动 HTML 测试?

有没有办法用 fakeServer 启动 HTML 测试?

是的,

在上面的beforeEach查看请求的解决方案有两个:

  1. 将回调传递给beforeEach函数
  2. 稍等片刻运行console.log

更改如下所示:

beforeEach(done => {
  // ...
  axios.get(...);
  setTimeout(() => {
    console.log("%c server.requests", "color: #C78B41", server.requests);
    done();
  });
});

哇。 那是有效的! 谢谢。 最后,我找到了构建所需测试的方法。

此页面是否有帮助?
0 / 5 - 0 等级