๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊ฒ์ด๋ผ๊ณ ์์ํ์ต๋๊น? 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
๋ฅผ ์คํํ๋ ค๋ฉด ์ ์๋ง ๊ธฐ๋ค๋ฆฌ์ญ์์ค.๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.