DataMongoTest 加载拦截器

DataMongoTest load Interceptors

我得到了一个运行良好的 DataMongoTest,但它没有加载配置的拦截器

@Configuration
public class EntityInterceptors extends AbstractMongoEventListener<Entity> { ... }

@DataMongoTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles({"default", "test"})
public class MongoTest {

  @Autowired
  private DataRepository repo;
  ... 
}

存储库已正确连接并且可以在测试中访问。它不是嵌入式数据库,而是在测试前清理的外部测试数据库。

如果我在应用程序环境中执行此操作,拦截器将全部加载。但它们不会在测试中加载 class。我如何将 class 添加到执行上下文而不将其用作 SpringBootTest,其中所有其他不需要的东西也被加载?

DataMongoTest 不足以 运行 为此:

@ExtendWith(SpringExtension.class)
// Add Config and all dependent Interceptors
@SpringBootTest(classes = {
    InterceptorConfig.class,
    TopEntityInterceptor.class,
    CascadedEntityInterceptor.class
})
// MONGO INIT
@ImportAutoConfiguration
@AutoConfigurationPackage
@AutoConfigureDataMongo
@ActiveProfiles({"default", "test"})
class InterceptorTest {
  @Autowired TopEnitityRepository repo;
}

您现在可以使用 repo 并检查拦截器是否在持久化后完成了它们的工作,以及拦截器是否也级联。