Как смоделировать значение параметра в классе обслуживания - PullRequest
0 голосов
/ 15 февраля 2020

Как я могу проверить следующий метод обслуживания с помощью теста Junit? Это очень простая перестройка моего кода и только пример. Я хочу проверить в тесте JUnit, что происходит, если строка файла пуста или равна нулю . К сожалению, я новичок в тестировании с JUnit. Я уже читал несколько примеров для контроллера покоя и сервисов и репозиториев для меня издевались и методы для него, но здесь я понятия не имею, как это может работать. Может кто-нибудь может помочь?

public class MyService {

    private String fileName = "src/main/resources";
 // or
 // private String fileName = ${modulename.config.filename};
//  @Autowired
//  private RepoService RepoService;

    @EventListener
    public void init(ContextRefreshedEvent event) {
        try {
        myMethod();
        } catch (Exception e) {
            // LOGGING
        };
}


public void myMethod() {

        if(fileName != null && !fileName.isEmpty()) {
            // doSomething with file and IOException
            // save in repo
        } else {
            // LOGGING
        }       
    }
}


    public void myMethod() {        
        if(fileName != null && !fileName.isEmpty()) {
            // doSomething with IOException
        } else {
            // LOGGING
        }       
    }
}

Тест должен выглядеть следующим образом. Я пытался как-то установить значение в тесте, но это не имеет смысла, и тогда оно не установлено.

@SpringBootTest
class DemoApplicationTests {

    @Test
    public void fileNameTest() {
        // GIVEN
        //Mockito.when()

        // WHEN

        // THEN
    }

}

1 Ответ

1 голос
/ 15 февраля 2020

Чтобы изменить значение приватной переменной Используйте модификацию Field, используя Reflection API. Здесь хорошее объяснение того, как это сделать.

...