【发布时间】: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