Ladda ner följande repo och installera
https://github.com/FEND16/jest-mock-exerciseFinns även länkat via Studentportalen
Asynkronitet är oberäkneligt
Därför blir det svårt att testa
fetch()
, setTimeout
, $.ajax()
Lättast är att fejka allt
Vilket ord som använd är mindre viktigt, benämns lite olika.
3 saker som händer, 3 testfall
Att kunna appenda till DOMen samt sortera informationen behöver bara data, data måste inte komma från databasen.
Fejka response från servern
fetch-mock
eller liknandejest.mock
Inte fejka respons från servern
test('fetches data from actual server', () => {
return fetchData(url)
.then(returnData => {
expect(returnData).toBeDefined();
})
})
Jest har inbyggd hantering av async om du returnerar något från testfallet
Inte fejka respons från servern
test('fetches data from actual server', async () => {
const returnData = await fetchData(url);
expect(returnData).toBeDefined();
})
Med async/await
blir det snyggare