Я тестирую клиентскую библиотеку ftp, которая внутренне использует @Inject
. И у меня проблема, связанная с вопросом времени.@BeforeSuite и @Guice timing issue
public class FakeFtpServerTest {
@BeforeSuite
public void startFtpServer() {} // not invoked before injection
@AfterSuite
public void stopFtpServer() {}
}
public class MyFtpClientModule {
@Override
protected void configure() {
}
}
@Guice(modules={MyFtpClientModule.class})
public class MyFtpClientTest {
@Inject
@InjectMe
private MyFtpClient client;
}
Проблема заключается в том, что инъекция вызывается, когда TestNG
создания экземпляра MyFtpClientTest
, что означает время до @BeforeSuite
вызывается. И модуль, который связывает и предоставляет некоторый ftp-клиент, который должен быть уже подключен к фальшивому ftp-серверу, терпит неудачу.
Как я могу решить эту проблему? Есть ли какой-либо метод для решения этой проблемы?
Вы можете попробовать аннотировать startFtpServer как '@ PostConstruct' –