SWT - Unit Tests Flashcards

1
Q

Hvad er et unit test framework?

A

Et værktøj til at skrive Unit Tests. I kurset arbejder vi med NUnit-frameworket

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvad er The Green Zone?

A

En sikker zone for udviklere, hvor vores unit tests er adskilt fra mere komplicerede tests (f.eks. integrationstests). Her kan vi få nyeste kode og køre alle tests knyttet hertil, og hvis alle test her er grønne, er vi i The Green Zone.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvad står AAA for og hvad er det?

A

Arrange, Act og Assert. Det er et mønster til at organisere vores tests på.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvad betyder de enkelte dele i AAA?

A

Arrange: Opsætning af sit object (uut) og opsætning af sin test case i den ønskede tilstand

Act: Får vores uut til at gøre en aktivitet, ofte noget med at kalde en metode for at teste om den gør det rigtige

Assert: Tjekker at det vi forventede også skete (den automatiske/objektive del af testen)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hvad er formålet med The Green Zone?

A

At vi kan køre Green Zone Test’ene hurtigt hele tiden, så vi har en god mavefornemmelse, når vi bevæger os frem i vores kodeudvikling

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hvad er false positive?

A
  • DOBBELTTJEK DETTE!

Når en test fejler, men der ikke er noget galt med koden, man tester. Så er testen forkert pga. man f.eks. har konfigureret den forkert eller sat den forkert sammen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

I Unit Tests, hvad er en god navnekonvention?

A

Metoden man tester, scenariet og forventet resultat. F.eks.:

Schedule_OneThreadScheduleCalledTwice_SameThreadSelected( )

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvordan anvendes AAA i NUnit framework?

A
  • NUnit supporter klassen [TextFixture]
  • Heri er der en attribut [Setup], der er en metode til at hjælpe med at arrange tingene
  • Hver enkelt testcase får [Test] attributten, der er standalone metoder
    • Mere arrange steps (hvis nødvendigt)
    • Act‘er (hvis nødvendigt)
    • Assert‘er (hvis vi ikke assert’er, har vi ikke testet)
  • NUnit har fleksible muligheder for at Assert‘e
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hvordan opbygges den klassiske assert model?

A

Assert.AreEqual(10,x);

10 = forventede tilstand

x = faktiske tilstand

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hvordan opbygges den constraint-baserede assert model?

A

Assert.That(x, Is.EqualTo(10));

eller

Assert.That(< item >,< verb >.< constraint >)

x = faktiske tilstand

EqualTo(10) = constraint med forventede tilstand

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Forklar assert-verbumerne i constraint-based-modellen

Assert.That(< item >,< verb >.< constraint >)

A
  • < item > kan være:
    • værdi, f.eks. returværdi fra metodekald eller en property
    • reference til et objekt
    • metode eller lambda, begge med nul parametre
  • < verb > kan være:
    • Is.
    • Has.
    • Contains. (hvis item er en string eller collection)
    • Does.
    • Throws. (hvis item er en metode eller en lambda)
    • Osv. …
  • < constraint > kan være (næsten, men ikke aller constraints følger helt dette mønster):
    • .EqualTo(< value >)
    • .Greater Than(< value >) / .LessThan(< value >)
    • .InRange(< value >, < value >)
    • .Zero
    • .False / True
    • .Null
    • .Empty (strings og collections)
    • .Contain (strings og collections)
    • .EndWith(“ “) / .StartWith(” “) (strings)
    • .Throws (methoder/lambda)
    • Osv. …
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hvilken project type bruger vi i kurset til at oprettet Unit Tests i?

A

NUnit Test Project, der kan køre på .NET Core (gerne mindst version .NET Core 3.1 i “target framework”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvilken dependency skal din testklasse have?

A

Dependency til den klasse, som vi tester, så vi kan lave et objekt af klassen (uut = unit under test)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hvad kan et Console.App projekt?

A

Tage input fra tastaturet og output på en skærm

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hvad kan et Class Library projekt?

A

Indeholder kode som man kan bruge indefra andre klasser eller andre projekter

How well did you know this?
1
Not at all
2
3
4
5
Perfectly