Можно протестировать методы, которые ничего не возвращают (void), но вы должны проверить побочные эффекты этого метода, но здесь, в вашем случае determineType
метод, не показывающий никаких побочных эффектов, это больше похоже на проверку метод и ничего не возвращать, т.е. void
, и так как он ничего не возвращает, поэтому вы не можете использовать assertEquals(expected,actual)
, потому что assertEquals
- это всегда сравнение между чем-то фактическим результатом вашей операции и ожидаемым результатом .
Поэтому, чтобы протестировать этот метод, вы можете изменить тип возврата метода determineType
с void
на String
(то есть удалить sysouts
и просто return
результат каждого из них. условие сравнения r \ например, "Не треугольник" и т. д. c.).
Затем 5
различные тестовые случаи для проверки каждого условия, указанного в вашем методе determineType
, и сравнения возвращенного значения String
с ваш ожидаемый результат.
Что-то вроде,
@Test
public void testNotATriangle(){
assertEquals(determineType(0,1,1), "Not a Triangle");
}
@Test
public void testEquilateralTriangle(){
assertEquals(determineType(1,1,1), "Equilateral Triangle");
}
// other test case here, for each condition
public static String determineType(int a, int b, int c) {
if(a >= (b+c) || c >= (b+a) || b >= (a+c) ) {
return "Not a Triangle";
} else if(a==b && b==c) {
return "Equilateral Triangle";
} else if (((a * a) + (b * b)) == (c * c) || ((a * a) + (c * c)) == (b * b)|| ((c * c) + (b * b)) == (a * a)) {
return "Right Triangle";
} else if(a!=b && b!=c && c!=a) {
return "Scalene Triangle";
} else if ((a==b && b!=c ) || (a!=b && c==a) || (c==b && c!=a)) {
return "Isosceles Triangle";
}
return null;
}
public static void main(String [] args) {
determineType(1,1,9);
}