1)问题描述:
- 我正在使用 Spring-Data-Mongo-Reactive、Testcontainers 和 JUnit 05;
- 我有一个带有简单测试和“嵌套测试类”的测试类(也有一个简单的测试);
- 当 JUnit 测试 NestedClass 时,MongoDb 连接关闭,测试“Test's NestedClass”失败;
我的目标是:
- 保持 Reactive-MongoDB-Connection 打开,以便测试“Nested-Test-Class”;
以下是上述情况的代码:
1.1) 代码:
当前工作状态:不工作;
当前行为:
- Reactive-MongoDB 连接正在关闭,当测试“嵌套测试类”时,即使第一个测试正常测试。.
@Import(ServiceCrudRepoCfg.class)
@TestcontainerAnn
@TestsMongoConfigAnn
@TestsGlobalAnn
public class Lab {
final private String enabledTest = "true";
@Autowired
IService serviceCrudRepo;
@Test
@DisplayName("Save")
@EnabledIf(expression = enabledTest, loadContext = true)
public void save() {
Person localPerson = personWithIdAndName().create();
StepVerifier
.create(serviceCrudRepo.save(localPerson))
.expectSubscription()
.expectNext(localPerson)
.verifyComplete();
}
@Nested
@DisplayName("Nested Class")
@Execution(SAME_THREAD)
class NestedClass {
@Test
@DisplayName("findAll")
@EnabledIf(expression = enabledTest, loadContext = true)
public void findAll() {
StepVerifier
.create(serviceCrudRepo.findAll()
.log())
.expectSubscription()
.expectNextCount(1L)
.verifyComplete();
}
}
}
2)当前有问题的日志/错误:
java.lang.AssertionError:期望“expectNextCount(1)”失败(期望:count = 1;实际:counted = 0;信号:onError(org.springframework.data.mongodb.ClientSessionException:状态应该是:服务器会话池已打开; 嵌套异常是 java.lang.IllegalStateException: state should be: server session pool is open))
引起:java.lang.IllegalStateException:状态应该是:服务器会话池是打开的
3)问题:
- 如何保持 Reactive-MongoDB-Connection 处于打开状态,以便同时测试“Nested-Test-Class”?
非常感谢您的帮助