标签: fongo

Fongo - 未找到 OperationExecutor

我想在我的 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)

spring spring-boot fongo

5
推荐指数
1
解决办法
1429
查看次数

将配置类添加到 SpringBootTest 会中断组件扫描

我正在尝试禁用真正的 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)

autowired spring-boot component-scan fongo spring-boot-test

5
推荐指数
1
解决办法
3023
查看次数

Spring boot 嵌入式 MongoDb 数据预填充

我想知道是否有像Flyway这样的工具可以帮助mongodb进行数据库初始化/迁移。我的一些想法是

  1. 我已经将flappdoodle用作带有springboot的嵌入式mongo。这工作正常,但是,我需要手动将数据放入其中。
  2. 对于使用 mongo db 的 Junit 测试,我使用nosqlunit。这对 Fongo(Fake mongo)非常有效。它支持从 json 文件读取数据并在启动期间用数据预填充数据库。但这仅适用于 junit,因为这是一个 JUnit 扩展。

我正在寻找的是上述两者的混合,一个嵌入式 mongo,它不仅可以与 JUnit 一起使用,还可以从给定的 json 中预填充数据(类似于 Flyway 中的 V1__init.sql)
有没有这样的工具?

unit-testing mongodb spring-data-mongodb spring-boot fongo

4
推荐指数
1
解决办法
3979
查看次数