Qué esperabas que sucediera? Espero que el recuento de sinon.fakeServer.requests sea más de 1
Lo que realmente sucede sinon.fakeServer.requests siempre es nulo
Como reproducir
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);
});
});
Llamo
axios.get
solicitudes directamente en el código de prueba y también se llama en el método componentWillMount
de un componente react.js
axios.get()
es asincrónico. Esto significa que cuando sus console.log
carreras de línea, el xmlhttprequest
no ha sido creada todavía.
Gracias por la respuesta. Pero en el caso en que uso server.autoRespond = true;
o server.respondImmediately = true;
o server.respond();
server.requests todavía está vacío. ¿Es correcto que esas cosas no funcionen?
¿Hay alguna forma de iniciar pruebas HTML con fakeServer?
¿Hay alguna forma de iniciar pruebas HTML con fakeServer?
Si lo hay .
La solución para ver las solicitudes en su beforeEach
anterior es doble:
beforeEach
console.log
Los cambios se verían así:
beforeEach(done => {
// ...
axios.get(...);
setTimeout(() => {
console.log("%c server.requests", "color: #C78B41", server.requests);
done();
});
});
Guau. ¡Eso funciona! Gracias. Finalmente, encontré la manera de crear las pruebas requeridas.
Comentario más útil
Si lo hay .
La solución para ver las solicitudes en su
beforeEach
anterior es doble:beforeEach
console.log
Los cambios se verían así: