我目前在 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)