Indholdsfortegnelse

banner

Unit testing

Unit testing fokuserer på at teste små, isolerede dele af koden, typisk individuelle funktioner eller metoder. Formålet er at sikre, at hver enhed fungerer korrekt, inden den integreres med resten af programmet.

Unit tests er automatiserbare, hvilket gør det lettere at genkøre dem, når kode ændres.

At mestre unit testing giver dig mulighed for at skrive mere robust og vedligeholdelsesvenlig kode, fordi fejl opdages tidligt, og du kan arbejde med tillid til, at ændringer ikke bryder eksisterende funktionalitet.


Teori

Unit tests

Introduktion

Hvad er Unit Tests?

Hvorfor bruge Unit Tests?

Sådan skriver du en Unit Test


Eksempel på en Unit Test (C# med xUnit)

I dette lille eksemple vil vi starte med at unit teste en regnemaskine. ( Calculator class )

  1. En samling/gruppe af tests kaldes en 'TestSuite'. Vi giver derfor vores testklasser et beskrivende navn over hvad de klassen tester, som ender på TestSuite. f.eks. 'CalculatorTestSuite'.
  2. Setup kan laves igennem klassens constructor.
  3. For at indikere overfor xUnit framework at en metode er en testmetode, markeres denne metode med en [Fact] attribut som vist nedenstående.
  4. Teardown. Når objekter destrueres kaldes metoden 'Dispose' implicit. Hvis vi vælger implementere 'IDispose' interfaces kan vi implementere vores teardown i 'Dispose' metoden.

Assert (Hævde/Påstå)


Testen

Single test, uden argumenter:
 
public class CalculatorTestSuite {
 
   [Fact]
   public void TestAdd() {
      int result = calculator.Add(2, 3);  // Exercise
      Assert.AreEqual(5, result);         // Verify
   }
}

Med metode parametre, og inline data.

public class CalculatorTestSuite {
 
   [Theory]
   [InlineData(1, 1, 1)]
   [InlineData(2, 2, 4)]
   [InlineData(3, 3, 9)]
   [InlineData(2, 0, 0)]
   public void Multiply_multiple(int a, int b, int expected) {
      // Arrange
      Calculator calc = new Calculator();
 
      // Act, and Assert
      Assert.Equal(expected, calc.Multiply(a, b));
   }
}

Tilknytning : Produktionskode til SUT

This is kinda important!!:

  • Du skal sikre både produktionskoden og testkoden anvender __samme .net version. (fx. .net8)
  • Check ved at se properties på begge projekter (kode og test)

This is also kinda important:


Kørsel af test


Øvelser

—-

Slides


Test dig selv