我正在构建一个Spring Boot应用程序,该应用程序将Spring数据存储库与MongoDB一起使用。我正在尝试创建一个Spock功能规范来测试我的存储库,但我无法找到初始化Mongo DB以准备测试的适当方法。到目前为止,我尝试了以下内容:
以下是删除数据库时的操作:
@ContextConfiguration(classes = MyApp, loader = SpringApplicationContextLoader)
@ActiveProfiles('test')
class UserRepositoryTest extends Specification {
@Shared
boolean mongoReset = false
@Autowired
MongoTemplate mongoTemplate
@Autowired
UserRepository userRepository
void setup() {
if (!mongoReset) {
mongoTemplate.getDb().dropDatabase()
mongoReset = true
}
}
}
理想情况下,我希望能够使用类似于JPA存储库提供的data.sql方法。
答案 0 :(得分:3)
我们通常建议使用存储库来擦除数据库(即调用userRepository.deleteAll()
)。删除数据库的缺点是擦除在上下文引导时间内可能已创建的所有索引。