サーチ…


戻り値の確認

[Test]
public void Calculator_Add_ReturnsSumOfTwoNumbers()
{
    Calculator calculatorUnderTest = new Calculator();
  
    double result = calculatorUnderTest.Add(2, 3);

    Assert.AreEqual(5, result);
}

状態ベースのテスト

このシンプルなクラスでは、 ShaveHeadメソッドが呼び出された後にHairLength変数の状態が0に設定されていることをアサートすることによって、 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);
}

例外がスローされたことの確認

場合によっては、例外がスローされたときにアサートする必要があります。異なるユニットテストフレームワークには、例外がスローされたことを宣言するための異なる規則があります(NUnitのAssert.Throwsメソッドなど)。この例では、例外処理で構築されたフレームワーク固有のメソッドは使用していません。

[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
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow