小编use*_*128的帖子

在 Spring JUnit @WebMvcTest 中使用嵌入式 MongoDB

我目前在 Spring 应用程序中使用 MongoDB。由于我添加了 Mongo,由于以下错误,我的端点测试不再起作用:

No qualifying bean of type 'xxx' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
Run Code Online (Sandbox Code Playgroud)

我在控制器中自动装配的存储库如下:

private final RuleRepository ruleRepository;

@Autowired
public TestController(RuleRepository ruleRepository) {
    this.ruleRepository = ruleRepository;
}
Run Code Online (Sandbox Code Playgroud)

我认为这与 Mongo 以及我目前使用 AutoConfiguration 的事实有关。对于测试,我将 Flapdoodle Embed Mongo 依赖项添加到我的 pom.xml 中,并将范围设置为 test:

<dependency>
        <groupId>de.flapdoodle.embed</groupId>
        <artifactId>de.flapdoodle.embed.mongo</artifactId>
        <version>2.0.3</version>
        <scope>test</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我的测试类如下所示:

RunWith(SpringRunner.class)
@WebMvcTest(value = RouteController.class, secure = false)
@ActiveProfiles("test")
public class TestControllerEndpointTests {

@Autowired
private MockMvc mockMvc;

@Autowired
private RuleRepository ruleRepository;

@Before
public …
Run Code Online (Sandbox Code Playgroud)

junit mongodb spring-data-mongodb spring-boot

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

标签 统计

junit ×1

mongodb ×1

spring-boot ×1

spring-data-mongodb ×1