我已经将基于Spring Boot的项目拆分为几个Maven模块。现在,只有war- project包含启动程序类(具有主方法,启动Spring),其他模块的类型为jar。
如果不包含启动器,如何测试jar项目?
JUnit测试用例标头示例:
@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(StarterClassInDifferentProject.class) ...
我认为上下文测试应该在每个模块中可用,因此您可以及早发现电线和配置问题,而不必依赖完整的应用程序测试来查找它们。
我在同一模块中使用测试应用程序类来解决此问题。确保该主类位于您的 测试 目录中。
@SpringBootApplication() @EnableAutoConfiguration() public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } }
您的上下文现在应该可以正常工作。
@RunWith(SpringRunner.class) //@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) //@TestExecutionListeners({DependencyInjectionTestExecutionListener.class}) //@ContextConfiguration() @ActiveProfiles(profiles = {Profiles.WEB_REST}) //@TestPropertySource("/config/rest.yml") @WebMvcTest(EntityController.class) @DirtiesContext public class ServicesControllerTest { @Autowired private MockMvc mvc; @MockBean private Controller controller; @Test public void testAll() throws Exception { given(controller.process(null)).willReturn(null); mvc.perform(get("/").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()); } }