我想在我的 Spring 启动应用程序中使用 fongo 2.0.x,但我收到错误
Error:(23, 44) java: cannot access com.mongodb.operation.OperationExecutor
class file for com.mongodb.operation.OperationExecutor not found
Run Code Online (Sandbox Code Playgroud)
这是我的 AbstractMongoConfiguration
@Configuration
@ComponentScan("com.foo")
public class MongoDbConfig extends AbstractMongoConfiguration {
@Override
protected String getDatabaseName() {
return "demo";
}
@Override
public Mongo mongo() throws Exception {
return new Fongo(getDatabaseName()).getMongo(); //this line throws the error
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试禁用真正的 Mongo 连接并在测试中用 Fongo 模拟替换它。
这是我的测试课:
@SpringBootTest
@RunWith(SpringRunner.class)
public class ControllerTest {
@Autowired
private WebApplicationContext wac;
@Autowired
private ObjectMapper objectMapper;
@MockBean
private MyService service;
private MockMvc mockMvc;
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}
@Test
public void performTest() throws Exception {
... logic ...
}
}
Run Code Online (Sandbox Code Playgroud)
除非我尝试添加更改此行的配置文件,否则它工作正常:
@SpringBootTest
Run Code Online (Sandbox Code Playgroud)
对此:
@SpringBootTest(classes = TestConfig.class)
Run Code Online (Sandbox Code Playgroud)
配置类本身:
@Configuration
@ComponentScan
@EnableMongoRepositories
public class TestConfig extends AbstractMongoConfiguration {
@Override
protected String getDatabaseName() {
return "FongoDB";
}
@Override
public Mongo mongo() {
return new Fongo(getDatabaseName()).getMongo(); …Run Code Online (Sandbox Code Playgroud) 我想知道是否有像Flyway这样的工具可以帮助mongodb进行数据库初始化/迁移。我的一些想法是
我正在寻找的是上述两者的混合,一个嵌入式 mongo,它不仅可以与 JUnit 一起使用,还可以从给定的 json 中预填充数据(类似于 Flyway 中的 V1__init.sql)
有没有这样的工具?