【发布时间】:2020-11-20 09:43:35
【问题描述】:
我想在 Mongo 存储库中的集成测试保存操作中使用 StepVerifier。
我准备了一个插入多个 UserItems 的方法以供进一步验证:
Flux<UserItems> saveMultiple(int numberOfItems) {
return Flux.range(0, numberOfItems)
.flatMap { userItemsRepository.save(new UserItem(it)) }
}
userItemsRepository.save 返回单声道
我准备了一个测试方法:
def "Should save all UserItems"() {
given:
def numberOfItems = 3
when:
def saveResult = saveMultiple(numberOfItems)
then:
StepVerifier.create(saveResult)
.expectNextMatches {it.itemNo == 0 }
.expectNextMatches {it.itemNo == 1 }
.expectNextMatches {it.itemNo == 2 }
.expectComplete()
.verify()
}
而且我预计下一个项目将以 {0,1,2} 的顺序出现。不幸的是,由于java.lang.AssertionError,测试在各个步骤中以非确定性方式失败。我无法弄清楚如何正确地做到这一点。这是我测试 Reactor 流的第一种方法。任何人都有想法,如何处理这种情况?
【问题讨论】:
标签: java testing integration-testing project-reactor