我有一个执行得很好的DataMongoTest,但是它没有加载已配置的拦截器
@Configuration
public class EntityInterceptors extends AbstractMongoEventListener<Entity> { ... }
@DataMongoTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles({"default", "test"})
public class MongoTest {
@Autowired
private DataRepository repo;
...
}
存储库已正确连接,可以在测试中访问。它不是嵌入式数据库,而是在测试之前已清理的外部测试数据库。
如果我在应用程序环境中执行此操作,则拦截器将全部加载。但是它们不会加载到测试类中。如何在不将其用作SpringBootTest
的情况下将该类添加到执行上下文中,在该上下文中还加载了所有其他不需要的东西?
答案 0 :(得分:0)
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;
}
您现在可以使用存储库并检查拦截器在持久保存后是否完成了工作,并且拦截器是否也级联。