小编sli*_*lim的帖子

将配置类添加到 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
查看次数