Проведение Nunit теста

Мне нужно провести тест метода на то что он выдаёт исключение.

Метод для теста

    public double AreaRectangle(double a, double b, double c)
    {
        if (a <= 0 || b <= 0 || c <= 0)
        {
            throw new Exception("Одна из сторон имеет отрицательное значение или равна нулю.");
        }
        else
        {
            if (a + b >= c || a + c >= b || b + c >= a)
            {
                double p = (a + b + c) / 2;
                return Math.Round(Math.Sqrt(p * (p - a) * (p - b) * (p - c)), 2);
            }
            else
            {
                throw new Exception("Одна сторона треугольника больше суммы двух других сторон. Такой треугольник не может существовать.");
            }
        }
    }

Тест

    [Test]
    public void AreaRectangle_ThreeSidesTriangle_ReturnedException()
    {
        // arrange
        var operationWithRentangle = new OperationsWithRectangle();

        // act
        var area = operationWithRentangle.AreaRectangle(-1, 8, 8);

        // assert
        Assert.That(() => area, Throws.Exception);
    }

Результат теста

введите сюда описание изображения

Что я делаю не так?)


Ответы (1 шт):

Автор решения: A K

Как-то так:

[Test]
public void AreaRectangle_ThreeSidesTriangle_ReturnedException()
{
    // Arrange
    double a = -1;
    double b = 8;
    double c = 8;
    var operation = new OperationsWithRectangle();

    // Act
    var ex = Assert.Throws<ArgumentException>(() => operation.AreaRectangle(a, b, c));

    // Assert
    StringAssert.Contains("Not a rectangle.", ex.Message);
}
→ Ссылка