Spring data SpringBoot 2.x、JUnit 5扩展和MongoClient

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

我正试图为JUnit5编写一个扩展,我很好奇是否有办法进入已为测试设置的mongodb连接

例如,我的扩展如下所示:

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);
    }
}

天啊。真不敢相信我居然没看到。我在那门课上爬来爬去,想弄清楚他们是怎么做的,但不知怎么的,我错过了眼前的一切。哈哈,谢谢你!天啊。真不敢相信我居然没看到。我在那门课上爬来爬去,想弄清楚他们是怎么做的,但不知怎么的,我错过了眼前的一切。哈哈,谢谢你!