gpt4 book ai didi

java - mock 时的不同期望

转载 作者:行者123 更新时间:2023-12-01 17:48:27 25 4
gpt4 key购买 nike

我正在测试我的消息过滤。仅当 id 尚不存在时才会保存消息。

List<Message> messages = ninitializedDto.stream()
.filter(message -> !messageRepository.existsById(message.getId())
.map(this::initializeMessage)
.collect(Collectors.toList());

return messageRepository.saveAll(messages);

但在我的 Spock 测试中,大小始终返回 1。(即使我在返回之前打印了 messages.size() (它返回 0)

def "createMessages should filter and save only messages that does not exist yet"() {
given:
UninitializedDto dto = Mock()
dto.getId() >> 2L

List<UninitializedDto> messageDtos = [dto]

messageRepository.existsById(dto.getId()) >> true

when:
initialize.createMessages(messageDtos)

then:
1 * messageRepository.saveAll(_) >> {
List<Message> savedMessageList ->
assert savedMessageList.size() == 0
}
}

最佳答案

想通了。存在将列表参数包装在另一个列表中的错误。

1 * messageRepository.saveAll(_) >> {
List<Message> savedMessageList ->
List<Message> messageList = savedMessageList.get(0) as List<Message>

assert savedMessageList.size() == 0
}

关于java - mock 时的不同期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60825825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com