@RunWith(SpringRunner.class)
@SpringBootTest
public class BankMainAppTest {
/**
* Test App load without throwing an exception.
*/
@Test
public void contextLoads() {
}//pass
@Test
public void applicationStarts() {
BankMainApp.main(new String[] {});
}//fail throw exception given below..
}
java.lang.IllegalArgumentException: Cannot instantiate factory class: org.springframework.boot.env.EnvironmentPostProcessor
Возможный дубликат stackoverflow.com/questions/46650268/…
@Stultuske Согласно опубликованному коду, вероятно, для освещения (неправильная причина, по которой я согласен).




Либо аннотируйте тестовый класс с помощью @SpringBootTest и объявите пустой тестовый метод, либо не аннотируйте тестовый класс, а вызовите метод main() в тестовом методе.
Но не делайте и то, и другое.
Здесь вы это делаете, и он запускает один контейнер (до выполнения теста), а затем другой (в методе test).
Обратите внимание, что если вам не нужно делать никаких утверждений, потому что тест предназначен только для коэффициента покрытия, идиома для использования — это второй способ:
public class BankMainAppIT {
@Test
public void main() {
BankMainApp.main(new String[] {});
}
}
зачем тебе это? если приложение работает, можно с уверенностью сказать, что основной метод работает