Tags: #software_testing/testautomation/robotframework
![[Screenshot 2025-04-03 at 16.06.32.png]]
**Afbeelding 1:** Een voorbeeld van een log bestand met setups en teardowns
# Setup
> [!info] De setup bepaald de voorwaarden voor de test of de suite
In de setup zet je de stappen die nodig zijn om je test uit te kunnen voeren.
```
Inloggen is succesvol
[Setup] Open de browser en navigeer naar de website
Log in met juiste inloggegevens
Gebruiker is succesvol ingelogd
```
![[Pasted image 20250331100058.png]]
## Waarom gebruik je een setup
Het voordeel van de setup gebruiken is dat heel duidelijk is dat die stappen géén onderdeel zijn van de test. Op het moment dat de setup faalt zie je ook heel duidelijk in het rapport dat de setup is gefaald, niet de test.
![[Pasted image 20250331095804.png]]
## Test Setup en Suite Setup
- De **test setup** wordt uitgevoerd voordat de test uitgevoerd wordt
- De **suite setup** wordt eenmalig uitgevoerd voordat de testen in het testbestand worden uitgevoerd.
> [!warning] In principe wil je altijd al je testen schoon en individueel houden.
> Ik zou daarom bijvoorbeeld niet zo snel een browser opstarten in de suite setup want dat zou betekenen dat elke test gebruik maakt van dezelfde browser en eventueel context. Hierdoor zouden cookies en cache de test kunnen laten falen.
>
> Lees meer over Browser starten [[Robot Framework - Browser starten|Browser starten met Browser Library]]
De Suite Setup kan je bijvoorbeeld wel gebruiken om testdata in te laden. Zo heb ik een test die met veel data werkt en voordat de testen kunnen worden uitgevoerd moet berekend worden welke datum het is 30 dagen in toekomst, 14 dagen in toekomst etc.
De test setup is wel een goede plek om bijvoorbeeld de browser te openen en naar de website te navigeren. Dit zal veelal niet onderdeel zijn van je testdoel maar wel randvoorwaardelijk voor het uitvoeren van je test.
# Teardown
De teardown wordt altijd uitgevoerd ook als voorgaande stappen falen.
Dat is handig als je bijvoorbeeld je browser wil sluiten, die word altijd netjes afgesloten ook als een test niet slaagt.
In afbeelding 1 zie je hier ook een voorbeeld van.
```
Inloggen is succesvol
[Setup] Open de browser en navigeer naar de website
Log in met juiste inloggegevens
Gebruiker is succesvol ingelogd
[Teardown] Sluit de browser
```
# Syntax
Je kan op verschillende manieren je test setup en teardown aangeven.
De Suite wordt altijd gedefineerd in de Settings sectie.
De Test setup en teardown kan in de settings of per testcase bepaald worden.
Je gebruikt te settings als alle testen dezelfde setup en/of teardown nodig hebben.
Ik adviseer hier te kiezen voor datgene wat het meest leesbaar is.
Wanneer je veel testcases in je suite hebt en je moet naar boven scrollen om te zien wat er in de setup gebeurd is dat niet heel leesbaar.
```robot
*** Settings ***
Suite Setup Suite Setup Keyword
Test Setup Test Setup Keyword
Test Teardown Test Teardown Keyword
Suite Teardown Suite Teardown Keyword
*** Testcases ***
Dit is een testcase
[Setup] Test Setup Keyword
No Operation
[Teardown] Test Teardown Keyword
```