рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХреА рдереА? рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ sinon.fakeServer.requests рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдереА 1
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ sinon.fakeServer.requests рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп
рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░реЗрдВ
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
рд╡рд┐рдзрд┐ рдореЗрдВ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЗрдПрд╕ рдШрдЯрдХ
axios.get()
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЬрдм рдЖрдкрдХреА console.log
рд▓рд╛рдЗрди рдЪрд▓рддреА рд╣реИ, рддреЛ xmlhttprequest
рдЕрднреА рддрдХ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд▓реЗрдХрд┐рди рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЬрдм рдореИрдВ server.autoRespond = true;
рдпрд╛ server.respondImmediately = true;
рдпрд╛ server.respond();
рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдиреБрд░реЛрдз рдЕрднреА рднреА рдЦрд╛рд▓реА рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ рдХрд┐ рдпреЗ рдЪреАрдЬреЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреАрдВ?
рдХреНрдпрд╛ рдирдХрд▓реА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдЪрдЯреАрдПрдордПрд▓ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рдХреНрдпрд╛ рдирдХрд▓реА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдПрдЪрдЯреАрдПрдордПрд▓ рдкрд░реАрдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?
рд╣рд╛рдБ, рд╡рд╣рд╛рдБ рд╣реИ ред
рдЙрдкрд░реЛрдХреНрдд рдЖрдкрдХреЗ beforeEach
рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рджреЛ рдЧреБрдирд╛ рд╣реИ:
beforeEach
рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреЙрд▓рдмреИрдХ рдкрд╛рд╕ рдХрд░реЗрдВconsole.log
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреНрд╖рдг рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдкрд░рд┐рд╡рд░реНрддрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
beforeEach(done => {
// ...
axios.get(...);
setTimeout(() => {
console.log("%c server.requests", "color: #C78B41", server.requests);
done();
});
});
рд╡рд╛рд╣ рд╡рд╛рд╣ред рд╡рд╣ рдХрд╛рдо рд╣реИ! рдзрдиреНрдпрд╡рд╛рджред рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдорд┐рд▓ рдЧрдпрд╛ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рд╛рдБ, рд╡рд╣рд╛рдБ рд╣реИ ред
рдЙрдкрд░реЛрдХреНрдд рдЖрдкрдХреЗ
beforeEach
рдореЗрдВ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рджреЛ рдЧреБрдирд╛ рд╣реИ:beforeEach
рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдХреЙрд▓рдмреИрдХ рдкрд╛рд╕ рдХрд░реЗрдВconsole.log
рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреНрд╖рдг рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВрдкрд░рд┐рд╡рд░реНрддрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛: