Проведение 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);
}
