тестовый случай junit5 для метода, который ничего не возвращает

#java #spring-boot #junit #junit5

Вопрос:

У меня есть приведенный ниже метод, но я не могу создать тестовый случай для этого. Не могли бы вы, пожалуйста, помочь ?

Я не хочу использовать Насмешки.

 class A {
    public void setValue(PersonInfo a, Person b){
        if (a.getFullname() == null) {
            b.setFullName(a.getFirstName());
        }
    }
}
 

Я хочу посмотреть, задаю ли я значение для PersonInfo.firstname того, устанавливается ли оно как полное имя Человека или нет.

Попробовал нижеприведенный подход, но он равен нулю

 class TestClasss{

  @Autowired
  A a;
  public void TestValue(){
    Person p = new Person();
    PersonInfo pi= new PersonInfo();
    pi.setFirstName("TEST");

    a.setValue(pi,p);
  
    assertEqual("TEST",p.getFullName());

}
 

Ответ №1:

Вы можете сделать что-то вроде приведенного ниже.

 @Test
public void testA(){
  A ao = new A();
  PersonInfo a = new PersonInfo();
  a.setFirstName("Name");
  Person b = new Person();
  //call you method here
  ao.setValue(a, b);
  // As values of b object changed in the method so it will be reflected after 
  // method call also 
  // simple assertion... based on your requirement update this assert statement
  Assert.equals(a.getFirstName(), b.getFullName()); 
}
 

Я также попробовал на том же примере .. Я получаю ценности.
Я прикрепил один скриншот, который вы также можете проверить.
введите описание изображения здесь

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

Комментарии:

1. Я также придерживался того же подхода, но получил значение null

2. @raj, пожалуйста, проверьте скриншот. Я добавил из своей локальной системы.

Ответ №2:

Для этого я бы написал пару тестов:

  • Тест 1: Создайте a PersonInfo с null полным именем и a Person с известным полным именем, отличным от PersonInfo имени. Утверждайте, что Person полное имя равно PersonInfo имени.
  • Тест 2: Создайте PersonInfo человека с ненулевым полным именем и Человеком с известным полным именем, отличным от PersonInfo имени. Сохраните Person полное имя в переменной. Утверждайте, что Person полное имя отличается от PersonInfo имени и равно значению переменной, в которой вы его сохранили.

Комментарии:

1. проблема в том, как вы получите доступ к значениям из этих двух объектов ? Я получаю нулевые значения, пытаясь сопоставить значение с ожидаемым и фактическим

2. Ну, а как вы создали эти объекты? Вы установили значения для их свойств? Код, который вы опубликовали, этого не показывает.

3. Я добавил эту часть. пожалуйста, обновите.

4. Разместите Person PersonInfo классы и, нам нужно знать, что делают их конструкторы.

5. у них есть PersonInfo по умолчанию, а у Person есть конструктор по умолчанию, который создает два списка массивов