Я делаю учебник о том, как использовать метод Expected Exception для исключения исключений. У меня есть 2 вопроса для кода.Junit catch Ожидаемое исключение
Я использовал одиночные кавычки вместо двойных кавычек в строке, показанной ниже, сообщение об ошибке говорит «Недопустимый символ константы»
exception.expectMessage(containsString('invalid age'));
2. Код, выполняемый штраф в Eclipse, но на странице консоли не отображается сообщение в классе. Должен ли я использовать ключевое слово 'extends' для расширения класса Person внутри класса personTest?
Пожалуйста, сообщите мне, почему использование одиночной кавычки вызывает ошибку и как изменить мой код, чтобы я мог увидеть сообщение об исключении из класса Person при выполнении кода в классе testPerson. Благодаря!
код Учебник:
public class Person {
private final String name;
private final int age;
public Person(String name, int age){
this.name =name;
this.age = age;
if (age <= 0){
throw new IllegalArgumentException("Invalid age: " + age);
}
}
}
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import org.junit.Rule;
import org.junit.rules.ExpectedException;
import org.junit.Test;
public class personTest {
@Rule
public ExpectedException exception = ExpectedException.none();
@Test
public void testExpectedException(){
exception.expect(IllegalArgumentException.class);
//exception.expectMessage(containsString('invalid age'));
exception.expectMessage(containsString("Invalid age"));
new Person("Joe", -1);
}
}
Jeanne благодарит за ответ, чтобы показать мне правильный синтаксис, почему консоль не отображает сообщение об ошибке и правильное соглашение об именах в Java – user2061466