Spring data SpringBoot 2.x、JUnit 5扩展和MongoClient
我正试图为JUnit5编写一个扩展,我很好奇是否有办法进入已为测试设置的mongodb连接 例如,我的扩展如下所示:Spring data SpringBoot 2.x、JUnit 5扩展和MongoClient,spring-data,spring-data-mongodb,junit5,Spring Data,Spring Data Mongodb,Junit5,我正试图为JUnit5编写一个扩展,我很好奇是否有办法进入已为测试设置的mongodb连接 例如,我的扩展如下所示: public class MyExtension implements BeforeTestExecutionCallback { @Override public void beforeTestExecution(ExtensionContext context) throws Exception { // How do I get at the MongoC
public class MyExtension implements BeforeTestExecutionCallback {
@Override
public void beforeTestExecution(ExtensionContext context) throws Exception {
// How do I get at the MongoClient here (or in the class constructor)?
}
}
public class MyExtension implements BeforeTestExecutionCallback {
@Override
public void beforeTestExecution(ExtensionContext context) throws Exception {
ApplicationContext applicationContext = SpringExtension.getApplicationContext(context);
MongoClient mongoClient = applicationContext.getBean(MongoClient.class);
}
}
当然,我可以创建一个新的,但我希望重用已经设置好的一个Spring,这样扩展就不必处理诸如URI、auth凭据等已知信息
有什么想法吗?
SpringExtension
类提供了一种方法,用于获取与提供的ExtensionContext
关联的ApplicationContext
。
然后您可以从ApplicationContext
获取bean,如下所示:
public class MyExtension implements BeforeTestExecutionCallback {
@Override
public void beforeTestExecution(ExtensionContext context) throws Exception {
// How do I get at the MongoClient here (or in the class constructor)?
}
}
public class MyExtension implements BeforeTestExecutionCallback {
@Override
public void beforeTestExecution(ExtensionContext context) throws Exception {
ApplicationContext applicationContext = SpringExtension.getApplicationContext(context);
MongoClient mongoClient = applicationContext.getBean(MongoClient.class);
}
}
SpringExtension
类提供了一种方法,用于获取与提供的ExtensionContext
关联的ApplicationContext
。
然后您可以从ApplicationContext
获取bean,如下所示:
public class MyExtension implements BeforeTestExecutionCallback {
@Override
public void beforeTestExecution(ExtensionContext context) throws Exception {
// How do I get at the MongoClient here (or in the class constructor)?
}
}
public class MyExtension implements BeforeTestExecutionCallback {
@Override
public void beforeTestExecution(ExtensionContext context) throws Exception {
ApplicationContext applicationContext = SpringExtension.getApplicationContext(context);
MongoClient mongoClient = applicationContext.getBean(MongoClient.class);
}
}
天啊。真不敢相信我居然没看到。我在那门课上爬来爬去,想弄清楚他们是怎么做的,但不知怎么的,我错过了眼前的一切。哈哈,谢谢你!天啊。真不敢相信我居然没看到。我在那门课上爬来爬去,想弄清楚他们是怎么做的,但不知怎么的,我错过了眼前的一切。哈哈,谢谢你!