unit-testing
Types d'assertion
Recherche…
Vérification d'une valeur retournée
[Test]
public void Calculator_Add_ReturnsSumOfTwoNumbers()
{
Calculator calculatorUnderTest = new Calculator();
double result = calculatorUnderTest.Add(2, 3);
Assert.AreEqual(5, result);
}
Test basé sur l'état
Étant donné cette classe simple, nous pouvons tester que la méthode ShaveHead
fonctionne correctement en affirmant que l'état de la variable HairLength
est défini sur zéro après l' ShaveHead
méthode ShaveHead
.
public class Person
{
public string Name;
public int HairLength;
public Person(string name, int hairLength)
{
this.Name = name;
this.HairLength = hairLength;
}
public void ShaveHead()
{
this.HairLength = 0;
}
}
[Test]
public void Person_ShaveHead_SetsHairLengthToZero()
{
Person personUnderTest = new Person("Danny", 10);
personUnderTest.ShaveHead();
int hairLength = personUnderTest.HairLength;
Assert.AreEqual(0, hairLength);
}
La vérification d'une exception est déclenchée
Parfois, il est nécessaire d'affirmer qu'une exception est lancée. Différents frameworks de tests unitaires ont des conventions différentes pour affirmer qu'une exception a été lancée (comme la méthode Assert.Throws de NUnit). Cet exemple n'utilise aucune méthode spécifique au framework, juste construite dans la gestion des exceptions.
[Test]
public void GetItem_NegativeNumber_ThrowsArgumentInvalidException
{
ShoppingCart shoppingCartUnderTest = new ShoppingCart();
shoppingCartUnderTest.Add("apple");
shoppingCartUnderTest.Add("banana");
double invalidItemNumber = -7;
bool exceptionThrown = false;
try
{
shoppingCartUnderTest.GetItem(invalidItemNumber);
}
catch(ArgumentInvalidException e)
{
exceptionThrown = true;
}
Assert.True(exceptionThrown);
}
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow