Verbeter de leesbaarheid en onderhoudbaarheid van mijn unit tests
description
Met deze prompt krijg je gerichte tips om je unit tests duidelijker en eenvoudiger te onderhouden te maken, wat de samenwerking binnen teams verbetert en toekomstige fouten voorkomt. Dit gaat verder dan alleen functionele correctheid en focust op duurzame testkwaliteit.
prompt
Evalueer mijn unit tests op leesbaarheid en onderhoudbaarheid. Unit test code: <plaats hier je unit test code>. Geef sug ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
De huidige unit test is functioneel correct, maar kan qua leesbaarheid en onderhoudbaarheid worden verbeterd. Hier zijn enkele suggesties:
1. Betere naamgeving:
- Gebruik een naam die duidelijk aangeeft wat de test controleert, bijvoorbeeld: `Add_GeldigeGetallen_ReturnsSom`.
- Overweeg het gebruik van de Given-When-Then structuur in de naam, zoals `GivenTwoNumbers_WhenAdded_ThenReturnsCorrectSum`.
2. Structuur:
- Voeg setup code toe indien nodig, bijvoorbeeld initialisaties vooraf.
- Maak gebruik van duidelijke scheidingen tussen opzet, uitvoering en controle (Arrange, Act, Assert).
3. Documentatie:
- Voeg korte commentaren toe om het doel van de test te verduidelijken.
- Gebruik indien mogelijk attributen zoals `[TestMethod]` of `[Test]` dat afhankelijk is van de testframeworks.
Voorbeeld van een verbeterde versie:
```csharp
/// <summary>
/// Test of de Add methode van de Calculator correct de som berekent van twee positieve gehele getallen.
/// </summary>
[Test]
public void Add_GeldigeGetallen_ReturnsCorrectSum()
{
// Arrange
int eersteGetal = 2;
int tweedeGetal = 3;
int verwachtResultaat = 5;
// Act
int werkelijkeResultaat = Calculator.Add(eersteGetal, tweedeGetal);
// Assert
Assert.AreEqual(verwachtResultaat, werkelijkeResultaat);
}
```
Samenvatting:
- Gebruik beschrijvende namen die de intentie van de test duidelijk maken.
- Structuur de test in Arrange, Act, Assert secties.
- Voeg korte documentatie toe om het doel te verduidelijken.
- Overweeg meer tests voor verschillende scenario's (bijvoorbeeld negatieve getallen, nul, grote getallen).
Zo wordt je test niet alleen duidelijker voor jezelf, maar ook voor anderen die de code onderhouden.
provider: deepseek
model: deepseek-chat
Hier is een evaluatie en suggesties voor je unit test:
## Evaluatie
Je huidige test is functioneel correct maar kan aanzienlijk worden verbeterd op het gebied van leesbaarheid en onderhoudbaarheid.
## Suggesties voor verbetering
### 1. Betere Naamgeving
```csharp
[Test]
public void Add_TweePositieveGetallen_RetourneertCorrecteSom()
{
// Arrange
int getal1 = 2;
int getal2 = 3;
int verwachteUitkomst = 5;
// Act
int werkelijkeUitkomst = Calculator.Add(getal1, getal2);
// Assert
Assert.AreEqual(verwachteUitkomst, werkelijkeUitkomst);
}
```
### 2. AAA-structuur (Arrange-Act-Assert)
Gebruik altijd de AAA-patroon voor betere leesbaarheid:
- **Arrange**: Setup testgegevens
- **Act**: Voer de te testen operatie uit
- **Assert**: Controleer het resultaat
### 3. Documentatie en Comments
```csharp
/// <summary>
/// Test of de Add-methode correct de som van twee positieve getallen berekent
/// </summary>
[Test]
public void Add_TweePositieveGetallen_RetourneertCorrecteSom()
{
// Arrange
int eersteGetal = 2;
int tweedeGetal = 3;
int verwachteSom = 5;
// Act
int resultaat = Calculator.Add(eersteGetal, tweedeGetal);
// Assert
Assert.AreEqual(verwachteSom, resultaat,
"De som van 2 en 3 moet 5 zijn");
}
```
### 4. Aanvullende Testgevallen
Overweeg deze aanvullende tests:
```csharp
[Test]
public void Add_NegatiefGetalEnPositiefGetal_RetourneertCorrecteSom()
{
// Arrange
int getal1 = -5;
int getal2 = 10;
int verwachteUitkomst = 5;
// Act & Assert
Assert.AreEqual(verwachteUitkomst, Calculator.Add(getal1, getal2));
}
[Test]
public void Add_NulWaarden_RetourneertNul()
{
// Arrange
int getal1 = 0;
int getal2 = 0;
// Act & Assert
Assert.AreEqual(0, Calculator.Add(getal1, getal2));
}
```
### 5. Gebruik Descriptive Naming
Naamconventie: `[Method]_[Scenario]_[ExpectedResult]`
Deze verbeteringen maken je tests:
- Zelfdocumenterend
- Makkelijker te onderhouden
- Duidelijker in intentie
- Beter leesbaar voor andere ontwikkelaars