unit-testing
Typy asercji
Szukaj…
Weryfikacja zwróconej wartości
[Test]
public void Calculator_Add_ReturnsSumOfTwoNumbers()
{
Calculator calculatorUnderTest = new Calculator();
double result = calculatorUnderTest.Add(2, 3);
Assert.AreEqual(5, result);
}
Testy oparte na stanie
Biorąc pod uwagę tę prostą klasę, możemy przetestować, ShaveHead
metoda ShaveHead
działa poprawnie, stwierdzając, że stan zmiennej HairLength
jest ustawiony na zero po ShaveHead
metody 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);
}
Weryfikacja wyjątku jest zgłaszana
Czasami konieczne jest stwierdzenie, kiedy zostanie zgłoszony wyjątek. Różne ramy testowania jednostkowego mają różne konwencje dotyczące twierdzenia, że został zgłoszony wyjątek (podobnie jak metoda Assert.Throws firmy NUnit). W tym przykładzie nie użyto żadnych metod specyficznych dla frameworka, a jedynie wbudowano obsługę wyjątków.
[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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow