Vi vill inte ha buggar och vi vill upptäcka buggar i tid
Olika typer av buggar
Hur förhindrar vi buggar?
// @flow
function square(n: number): number {
return n * n;
}
square("2"); // Error!
Tre huvudsakliga tester
Unit Testing
In computer programming, unit testing is a software testing method by which individual units of source code are tested to determine whether they are fit for use.
Ta den minsta enheten av testbar kod, isolera den och testa om den fungerar/returnerar det värde du förväntar dig
Koden förväntas returnera samma output av likadan input
function add( a , b ){
return a + b;
}
assert
state a fact or belief confidently and forcefully.
function assert(value) {
return value ? "Pass" : "Fail";
}
assert(add(1,1) === 2); //returns "Pass"
Förväntat beteende, returnerar false om vi introducerar en bugg i koden
Introducerar Dum Kod™
function add( a , b ){
return a + b + 1; //🤔 hurr durr
}
assert(add(1,1) === 2); //returns "Fail"
Följer inte längre förväntat beteende, implementationen är fel.
Test framework
Ramverk för att köra flera olika tester automatiserat
Standardisera testandet
Inbyggda funktioner för de mest vanliga scenarion som ska testas
Skapar ett testprojekt från grunden
Test Driven Development
Övning: Skapa unit tests
https://github.com/FEND16/unit-test-exerciseFastställ vilken funktionalitet i appen som måste fungera
Testa sedan denna funktionalitet