Чего вы ожидали? Я ожидаю, что количество 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
непосредственно в тестовом коде, а также он вызывается в методе componentWillMount
компонента response.js.
axios.get()
- асинхронный. Это означает, что когда ваша строка console.log
запускается, xmlhttprequest
еще не был создан.
Спасибо за ответ. Но в случае, когда я использую server.autoRespond = true;
или server.respondImmediately = true;
или server.respond();
server.requests по-прежнему пуст. Это правда, что эти вещи не работают?
Есть ли способ запустить HTML-тестирование с помощью fakeServer?
Есть ли способ запустить HTML-тестирование с помощью fakeServer?
Да, есть .
Решение для просмотра запросов в вашем beforeEach
выше двоякое:
beforeEach
console.log
Изменения будут выглядеть так:
beforeEach(done => {
// ...
axios.get(...);
setTimeout(() => {
console.log("%c server.requests", "color: #C78B41", server.requests);
done();
});
});
Вот это да. Это работает! Спасибо. Наконец, я получил способ создавать необходимые тесты.
Самый полезный комментарий
Да, есть .
Решение для просмотра запросов в вашем
beforeEach
выше двоякое:beforeEach
console.log
Изменения будут выглядеть так: