Java 使用TestHazelcastInstance测试HazelcastClient
有一个基于spring boot的hazelcast微服务,通过Java 使用TestHazelcastInstance测试HazelcastClient,java,spring-boot,integration-testing,hazelcast,spring-boot-test,Java,Spring Boot,Integration Testing,Hazelcast,Spring Boot Test,有一个基于spring boot的hazelcast微服务,通过hazelcast客户端连接到hazelcast群集 如果使用TestHazelcastInstance模拟集群,那么编写集成测试的过程是什么 尝试创建一个@TestConfiguration配置类,该类提供一个TestHazelcastInstance,但在这种情况下,另一个配置类HazelcastConfig(提供客户端)似乎没有执行,导致客户端实例没有被实例化 有什么见解吗 App.java: @SpringBootAppli
hazelcast客户端
连接到hazelcast群集
如果使用TestHazelcastInstance
模拟集群,那么编写集成测试的过程是什么
尝试创建一个@TestConfiguration
配置类,该类提供一个TestHazelcastInstance
,但在这种情况下,另一个配置类HazelcastConfig
(提供客户端)似乎没有执行,导致客户端实例没有被实例化
有什么见解吗
App.java:
@SpringBootApplication
public class App {
public static void main( final String[] args ) {
SpringApplication.run( App.class, args );
}
}
HazelcastConfig.java(提供客户端):
AppTest.java,有问题的测试:
@RunWith( SpringRunner.class )
@SpringBootTest( classes = { TestConfig.class } )
@ActiveProfiles( "test" )
public class AppTest {
@Test
public void contextLoads() {
}
}
TestConfig.java,提供TestHazelcastInstance
@TestConfiguration
@Profile( "test" )
@ConfigurationProperties( prefix = "hazelcast.server" )
public class TestConfig {
private Config config;
@Bean( "hazelcastInstance_TEST" )
public HazelcastInstance hazelcastInstance() {
return new TestHazelcastInstanceFactory( 1 ).newHazelcastInstance( config );
}
}
鉴于这是一个集成测试,您可能希望使用嵌入式Hazelcast实例进行测试:
hazelcastance testInstance=Hazelcast.newhazelcastance(配置)代码>下面是一个使用TestHazelcastFactory
public class NativeTestingHazelcast {
private TestHazelcastFactory hazelcastFactory = new TestHazelcastFactory();
private HazelcastInstance member;
private HazelcastInstance client;
@Before
public void setUp() throws Exception {
member = hazelcastFactory.newHazelcastInstance();
client = hazelcastFactory.newHazelcastClient();
}
@Test
public void simpleTest() throws Exception {
final IMap<Integer, String> testMapFromMember = member.getMap("testMap");
testMapFromMember.set(1, "test1");
final IMap<Integer, String> testMap = client.getMap("testMap");
final String value = testMap.get(1);
assertEquals("member puts, client gets", value, "test1");
}
@After
public void tearDown() throws Exception {
hazelcastFactory.shutdownAll();
}
}
公共类本地测试hazelcast{
私有TestHazelcastFactory hazelcastFactory=新TestHazelcastFactory();
哈泽尔卡斯特私人会员;
私有Hazelcast实例客户端;
@以前
public void setUp()引发异常{
member=hazelcastFactory.newHazelcastInstance();
client=hazelcastFactory.newHazelcastClient();
}
@试验
public void simpleTest()引发异常{
最终IMap testMapFromMember=member.getMap(“testMap”);
testMapFromMember.set(1,“test1”);
最终IMap testMap=client.getMap(“testMap”);
最终字符串值=testMap.get(1);
assertEquals(“成员卖出,客户得到”,值,“测试1”);
}
@之后
public void tearDown()引发异常{
hazelcastFactory.shutdownlall();
}
}
如果你还有其他问题,请告诉我
干杯
Vik配置对象是如何初始化的?在客户端实例化期间,您看到了什么错误日志?@laur请检查答案并将其标记为已回答。如果你还有其他问题,请告诉我。
public class NativeTestingHazelcast {
private TestHazelcastFactory hazelcastFactory = new TestHazelcastFactory();
private HazelcastInstance member;
private HazelcastInstance client;
@Before
public void setUp() throws Exception {
member = hazelcastFactory.newHazelcastInstance();
client = hazelcastFactory.newHazelcastClient();
}
@Test
public void simpleTest() throws Exception {
final IMap<Integer, String> testMapFromMember = member.getMap("testMap");
testMapFromMember.set(1, "test1");
final IMap<Integer, String> testMap = client.getMap("testMap");
final String value = testMap.get(1);
assertEquals("member puts, client gets", value, "test1");
}
@After
public void tearDown() throws Exception {
hazelcastFactory.shutdownAll();
}
}