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