抛出验证异常

有时需要在抛出异常时断言。不同的单元测试框架具有不同的约定来断言抛出异常(如 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);
}