Exception testing
Voeg volgende methode toe aan klasse Calculator
:
public double Divide(double a, double b)
{
return a / b;
}
Maak volgende testmethode:
[TestMethod]
public void TestDivide()
{
double expectedResult = 20 / 4;
double result = calculator.Divide(20, 4);
Assert.AreEqual(expectedResult, result);
}
Voer de test uit.
We willen nu testen wat er gebeurt als de deler 0 is.
Maak hiervoor volgende testmethode:
[TestMethod]
public void TestDivideByZero()
{
double result = calculator.Divide(20, 0);
Assert.AreEqual(0, result);
}
Voer de test uit. Deze geeft:

Voeg code toe aan de methode Divide
om een exception te werpen als de deler 0 is:
public double Divide(double a, double b)
{
if (b==0)
{
throw new DivideByZeroException();
}
else
{
return a / b;
}
}
Of een exception correct geworpen wordt, kan je testen op verschillende manieren. Hieronder tonen we er 2:
Gebruik van ExpectedException
Bij onze testmethode voegen we een ExpectedException
toe:
[TestMethod]
[ExpectedException(typeof(DivideByZeroException))]
public void TestDivideByZero()
{
double result = calculator.Divide(20, 0);
}
Deze test verloopt wel goed!
Om na te gaan of je test wel goed werkt, kan je eerst testen met een deling door 4. Dan krijg je deze melding:

Gebruik van try - catch
Je kan het werpen van een exception ook nog anders testen; namelijk met een try
- catch
. Maak volgende testmethode:
[TestMethod]
public void TestDivideByZeroWithTryCatch()
{
try
{
double result = calculator.Divide(20, 4);
Assert.Fail("DivideByZeroException werd niet geworpen");
}
catch (DivideByZeroException)
{
//test geslaagd
}
}
Deze zal 'failed" geven:

Verander nu de 4 in 0 en die test zal wel slagen.
Last updated