gpt4 book ai didi

java - spock框架如何 stub 由map函数流式传输的列表

转载 作者:行者123 更新时间:2023-12-02 12:37:52 24 4
gpt4 key购买 nike

我有一个在流映射方法中使用的方法:

private static MyEntry convertMapToMandantCheckerEntry(Map<String, Object> entryToConvert) {
return new MyEntry(String.valueOf(entryToConvert.get("mandant.path")),
String.valueOf(entryToConvert.get("mail.to")),
Boolean.valueOf(String.valueOf(entryToConvert.get("active"))));
}

我在此方法中使用此方法,该方法通过 map 进行流式传输,并且对于每个 map 条目,它将调用上述方法:

private List<MyEntry> createMandantLinkCheckerEntries(Map<String, Object> mapOfEntries) {
return Stream.of(mapOfEntries)
.map(convertMapToMandantCheckerEntry)
.collect(Collectors.toList());
}

所以现在我想用我的 Spock 测试来 stub 它。这里的问题是我不知道 ma​​p 正在调用 ma​​pOfEntries 。我尝试 stub Map#keySetMap#get 但没有成功。我不确定要 stub 什么来返回 stub 值,以便 convertMapToMandantCheckerEntry 接收有效的测试值。

编辑#1:忘记告诉我要 stub 的内容。我想 stub activemandant.pathmail.to键返回的entryToConvert值p>

最佳答案

正如您所写:“我想 stub active、mandant.path 和 mail.to 键返回的entryToConvert 值。”

这里是如何在 spock 上模拟 map 的示例:

def "stub map"() {
given:
def map = Mock(HashMap)
map.get("mandant.path") >> "1"

expect:
map.get("mandant.path") == "1"
}
<小时/>

但我不推荐它,因为 Map 是非常简单的类,不需要模拟/ stub 。

这里是相同的 map ,没有 mock :

def "normal map"() {
given:
def map = ["mandant.path" : "1"]

expect:
map.get("mandant.path") == "1"
}

因此,就您的情况而言,我们需要重新设计您的业务方法,以便能够对其进行测试。

关于java - spock框架如何 stub 由map函数流式传输的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45079570/

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