文档说编写@SpringbootTest并不意味着我们加载了所有的配置
我们应该能够一次测试一段应用程序
我有一个案例,其中一个模块与elastic search对话,我们在集成测试中启动EmbeddedElasticsearchServer
然而,我很难弄清楚如何定义@Configuration类,如何在测试中加载它们,以及如何确保elasticsearch服务器为所有测试启动一次
发布于 2019-04-18 09:05:55
我不确定@SpringBootTest。但是您可以将以下模板用于elasticsearch Integration est和embeddedserver
v7.0.0
@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1, numClientNodes = 0, transportClientRatio = 0, supportsDedicatedMasters = false)
@RunWith(com.carrotsearch.randomizedtesting.RandomizedRunner.class)
public class TestWatsonBulkIT extends ESIntegTestCase {
@Override
protected boolean addMockHttpTransport() {
return false;
}
@Override
protected Settings nodeSettings(int nodeOrdinal) {
Settings.Builder builder = Settings.builder()
.put(super.nodeSettings(nodeOrdinal))
.put(NetworkModule.TRANSPORT_TYPE_KEY, Netty4Plugin.NETTY_HTTP_TRANSPORT_NAME)
.put(NetworkModule.HTTP_TYPE_KEY, Netty4Plugin.NETTY_HTTP_TRANSPORT_NAME)
.put(HttpTransportSettings.SETTING_HTTP_PORT.getKey(), 9200)
.put(HttpTransportSettings.SETTING_HTTP_HOST.getKey(),"127.0.0.1");
Settings settings = builder.build();
return settings;
}
@Before
public void setUp() throws Exception {
beforeClass();
super.setUp();
}
@Test
public void test_1(){ // your integration test code here }
}
发布于 2019-04-12 03:27:05
我们应该能够一次测试一段应用程序
这可以通过在@SpringBootTest
注释中提供类来实现。我通常选择这个选项,这样就不会加载所有内容。比方说,
控制器: SampleController -> ConsumerService (自动连接)
测试
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {ConsumerService.class, SampleController.class})
public class TestSample {
@Autowired
SampleController sam;
@Test
public void testSam() {
sam.sample();
}
}
我确实有一堆服务,但它们不会被加载,所以它们的依赖关系是自动连接的。
如果这不是您要找的,请通过添加一些示例代码来增强您的问题。
https://stackoverflow.com/questions/55638712
复制相似问题