【问题标题】:Different controllers in same test同一测试中的不同控制器
【发布时间】:2020-09-08 07:25:01
【问题描述】:

我正在编写如下集成测试,并且我想在此测试中使用 BlueResource 不使用 BlueService,BlueResource 有调用 BlueService 方法的其余部分,但我不想创建另一个standaloneSetup对于那个新控制器。有什么好主意吗?是否可能启动设置以使用多个资源?还是我所有的应用程序控制器?

@DisplayName("IT of GreenResource")
@SpringBootTest(classes = ColorsApp.class)
public class GreenResourceIntTest {

     private MockMvc restMockMvc;

     @Autowired
     private ExceptionTranslator exceptionTranslator;

     @Autowired
     private MappingJackson2HttpMessageConverter jacksonMessageConverter;

     @Autowired
     private PageableHandlerMethodArgumentResolver pageableArgumentResolver;

     @Autowired
     private GreenService service;

     @Autowired
     private BlueService blueService;

     private GreenResource resource;

     private static final String RESOURCE = "green";

     private static final String API = "/api/";

     @BeforeEach
     @DisplayName("Running setup...")
     void setUp() {
        resource = new GreenResource(service);

        this.restMockMvc = MockMvcBuilders.standaloneSetup(resource)
            .setCustomArgumentResolvers(pageableArgumentResolver)
            .setControllerAdvice(exceptionTranslator)
            .setMessageConverters(jacksonMessageConverter, new ResourceHttpMessageConverter()).build();
}

    @Test
    @DisplayName("Running getAllGreen")
    @Transactional
    void getAllGreen() throws Exception {
        blueService.rush("1");

        restMockMvc.perform(post(API + RESOURCE + "/filter").contentType(MediaType.APPLICATION_JSON_UTF8).content(TestUtil.convertObjectToJsonBytes(new GreenFilter()))).andExpect(status().isOk());
   }
}

【问题讨论】:

    标签: spring spring-mvc integration-testing junit5 spring-test


    【解决方案1】:

    您可以为

    设置@MockBean 而不是@Autowired
    private BlueService blueService
    

    之后blueService中的所有方法都会返回null,如果你想要一些具体的响应,你可以写

    Mockito.when(blueService.method()).thanReturn(XXX)
    

    【讨论】:

    • 感谢您的回答,这是一种方法,但这不是我要寻找的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-18
    相关资源
    最近更新 更多