gpt4 book ai didi

java - 测试 - 如何检查 HashMap 中是否添加了某些内容

转载 作者:行者123 更新时间:2023-12-01 11:07:01 26 4
gpt4 key购买 nike

我有一个方法,只需将一些内容添加到 HashMap 中即可。我的测试如下所示:

    Collection<SomeCollection> colelction = setUpConfluenceUsers();
String group = "a";
String group2 = "s";
Parser collection = new ParserImpl();

//when
parser.map(group,users);

hashmap 在类之上初始化。我想测试一下这是否有效。我只是不知道如何检查该列表是否包含预期的元素。检查该方法是否会返回某些内容很简单。

现在我的解析器看起来像这样:

public static final String SEARCH_REGEX = "([\\s>])@(\\w+(?:[-\\.]\\w+)*)";

public static final int GROUP = 2;
private List<String> list = Lists.newArrayList();

Map hashMap = new HashMap<String, Collection<SomeCollection>>();


@Nonnull
@Override
public List<String> find(String body) {

Pattern r = Pattern.compile(SEARCH_REGEX);
Matcher matcher = r.matcher(body);

MatchResultsIterable resultIterable = new MatchResultsIterable(matcher);

for (MatchResult matchResult : resultIterable) {
list.add(matchResult.group(GROUP));
}

return list;
}

@Nonnull
@Override
public String parse(String body) {

return body;
}

@Override
public void map(@Nonnull String group, @Nonnull Collection<SomeCollection> users) {
hashMap.put(group, users);
}

我想做出某种断言来检查 map 工作是否正确。任何想法、代码片段都会很好。

最佳答案

您没有显示您的解析器类是什么,但一种解决方案是为此类创建一个仅测试的构造函数,并将映射的 spy 或模拟传递给它;例如:

@Test
public void mapIsFilled()
{
final Map<Foo, Bar> map = mock(Map.class);
final Parser parser = new Parser(map);

parser.whatever();

very(map).put(...);
}

更准确的答案需要您发布解析器类的代码。

关于java - 测试 - 如何检查 HashMap 中是否添加了某些内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32842774/

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