私は2つの春のブートアプリケーション1回のテストで複数のSpring Bootアプリケーションをテストするには?
親
- fooApp
- barApp
- テストとマルチモジュールMavenプロジェクトを持っていることができますテストを設定する方法
同じプロセスで別々のバックブートアプリケーションをそれぞれ独自の設定コンテキストでロードします。
public abstract class AbstractIntegrationTest {//test module
protected FOO foo;
protected BAR bar;
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@IntegrationTest
@Transactional
@SpringApplicationConfiguration(classes = foo.Application.class)
public class FOO {
public MockMvc mockMvc;
@Autowired
public WebApplicationContext wac;
@Before
public void _0_setup() {
MockitoAnnotations.initMocks(this);
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
TestCase.assertNotNull(mockMvc);
}
public void login(String username) {
}
}
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@IntegrationTest
@Transactional
@SpringApplicationConfiguration(classes = bar.Application.class)
public class BAR {
@Autowired
public WebApplicationContext wac;
public MockMvc restMvc;
@Before
public void _0_setup() {
MockitoAnnotations.initMocks(this);
restMvc = MockMvcBuilders.webAppContextSetup(wac).build();
TestCase.assertNotNull(restMvc);
}
public void login(String username) {
}
}
@Before
public void _0_setup() {
foo = new FOO();
bar = new BAR();
}
}
そして、二つのパッケージのcom.foo.module1考えると、統合テスト
public class IntegrationTest extends AbstractIntegrationTest {
@Test
public void login() {
foo.login("foologin");
bar.login("barlogin");
}
}
Spring Boot Test 1.5.0以降、(@ https://github.com/spring-projects/spring-boot/issues/8000) '@ContextConfiguration'を' @ SpringBootTest'で使用することができます。あなたは子のコンテキストを使ってみましたか? –