avlusing og testing
i JavaScript


hva er debugging?

breakpoints
i nettleseren

breakpoints
i koden
console.log('a');
console.log('b');
debugger;
console.log('c');
alert("test");
console.*
console.log()
console.log("Hello world!");
const myObj = { firstname : "John", lastname : "Doe" };
console.log(myObj);

console.group()
console.group("open");
console.log("now");
console.log("you");
console.log("see");
console.log("me");
console.groupEnd();

console.table()
const myObj = { firstname : "John", lastname : "Doe" };
console.table(myObj);


console.warn() & console.error()
console.warn("Warning");

console.error("Error");

console.trace()
function myFunction() {
myOtherFunction();
}
function myOtherFunction() {
console.trace();
}
myFunction();

console.assert()
const a = 1;
const b = 2;
console.assert(
a > b,
"a is not bigger than b",
[ a, b ],
);

console.time()
console.time("cool");
for (i = 0; i < 100000; i++) {
console.log("cool");
}
console.timeEnd("cool");

bonus: console.log()
…med stil 😎


testing
testvarianter
Enhetstester
Tester som sjekker logikk internt i en avansert metode (f.eks. utregning av priser).
Integrasjonstester
Hvordan integrerer applikasjonen med seg selv. Kobler gjerne ut deler av appen (f.eks. database, eksterne avhengigheter). Tester hvordan forskjellige biter av appen prater med hverandre. Ende-til-ende-tester-light!
Ende-til-ende-tester
Teste om flyten av en applikasjon fungerer som designet fra start til slutt. Later som om man er brukeren.
testvarianter
Enhetstester
Tester som sjekker logikk internt i en avansert metode (f.eks. utregning av priser).
Integrasjonstester
Hvordan integrerer applikasjonen med seg selv. Kobler gjerne ut deler av appen (f.eks. database, eksterne avhengigheter). Tester hvordan forskjellige biter av appen prater med hverandre. Ende-til-ende-tester-light!
Ende-til-ende-tester
Teste om flyten av en applikasjon fungerer som designet fra start til slutt. Later som om man er brukeren.
✅
✅
⛔️
testvarianter
Ende-til-ende-tester


testrammeverk

Jest
Vitest

Vitest

Vitest

Vite

Vitest

Vite
Testing Library

mocking
Eksterne ressurser (f.eks. nettverkskall, filer DOM-operasjoner) skaper uforutsigtbarhet ved testing.
Vi vil ikke at testene våre feiler fordi en ekstern ressurs ikke er tilgjengelig når testen kjører.
Derfor "mocker", dvs. simulerer, vi oppførselen til disse ressursene.
TIFU
🤯

Vite aims to address these issues by leveraging new advancements in the ecosystem: the availability of native ES modules in the browser, and the rise of JavaScript tools written in compile-to-native languages.


github.com/markusra/js-testing
debugging
By Markus Rauhut
debugging
- 112