嘲笑期间的不同期望

问题描述 投票:0回答:1

我正在测试邮件过滤。如果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
        }
    }
java unit-testing java-stream spock
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.