unit-testing
Assertion-Typen
Suche…
Überprüfen eines zurückgegebenen Werts
[Test]
public void Calculator_Add_ReturnsSumOfTwoNumbers()
{
Calculator calculatorUnderTest = new Calculator();
double result = calculatorUnderTest.Add(2, 3);
Assert.AreEqual(5, result);
}
State Based Testing
In Anbetracht dieser einfachen Klasse können wir testen, ob die ShaveHead
Methode ordnungsgemäß funktioniert, indem der Zustand der HairLength
Variablen nach ShaveHead
der ShaveHead
Methode auf Null ShaveHead
wird.
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);
}
Überprüfen, ob eine Ausnahme ausgelöst wurde
Manchmal ist es notwendig zu behaupten, wann eine Ausnahme ausgelöst wird. Verschiedene Einheitentest-Frameworks haben unterschiedliche Konventionen, um zu behaupten, dass eine Ausnahme ausgelöst wurde (z. B. die Assert.Throws-Methode von NUnit's). In diesem Beispiel werden keine rahmenspezifischen Methoden verwendet, die nur in die Ausnahmebehandlung integriert sind.
[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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow