已排序 ArrayList 的 JUnit 测试
JUnit Test For Sorted ArrayList
所以,我有方法:
public List<Map.Entry<String, Integer>> sortMap(HashMap<String, Integer> map) {
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
list.sort((o1, o2) -> {
int value = o2.getValue().compareTo(o1.getValue());
if (value != 0) {
return value;
}
return o1.getKey().compareTo(o2.getKey());
});
return list;
}
我需要对他进行 JUnit 测试。实际上,我开始编写它,但我不知道如何正确完成它
@Test
public void shouldReturnCurrentList() {
Object object = new Object();
List<Map.Entry<String, Integer>> testList = new ArrayList<>(testMap.entrySet());
testMap.put("One", 1);
testMap.put("Two", 2);
testMap.put("Three", 3);
testMap.put("Four", 4);
object.sortMap(testMap);
}
创建地图。在本例中,我添加了一个具有重复值的元素。
Map<String,Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
map.put("Four", 4);
map.put("AnotherFour", 4);
现在调用方法
List<Map.Entry<String, Integer>> actual = SUT.sortMap(map);
现在根据我们期望的 Map 处理方式测试顺序。对于 out map,键的顺序应该是“One”、“Two”、“Three”、“AnotherFour”、“Four”,值的顺序应该是 1、2、3、4、4。
Assert.assertEquals("One", actual.get(0).getKey());
Assert.assertEquals(1, actual.get(0).getValue());
Assert.assertEquals("Two", actual.get(1).getKey());
Assert.assertEquals(2, actual.get(1).getValue());
Assert.assertEquals("Three", actual.get(2).getKey());
Assert.assertEquals(3, actual.get(2).getValue());
Assert.assertEquals("AnotherFour", actual.get(3).getKey());
Assert.assertEquals(4, actual.get(3).getValue());
Assert.assertEquals("Four", actual.get(4).getKey());
Assert.assertEquals(4, actual.get(4).getValue());
地图有更方便的方式
assertThat(testList)
.contains(Assertions.entry("one", 1), Assertions.entry("two", 2));
所以,我有方法:
public List<Map.Entry<String, Integer>> sortMap(HashMap<String, Integer> map) {
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
list.sort((o1, o2) -> {
int value = o2.getValue().compareTo(o1.getValue());
if (value != 0) {
return value;
}
return o1.getKey().compareTo(o2.getKey());
});
return list;
}
我需要对他进行 JUnit 测试。实际上,我开始编写它,但我不知道如何正确完成它
@Test
public void shouldReturnCurrentList() {
Object object = new Object();
List<Map.Entry<String, Integer>> testList = new ArrayList<>(testMap.entrySet());
testMap.put("One", 1);
testMap.put("Two", 2);
testMap.put("Three", 3);
testMap.put("Four", 4);
object.sortMap(testMap);
}
创建地图。在本例中,我添加了一个具有重复值的元素。
Map<String,Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);
map.put("Four", 4);
map.put("AnotherFour", 4);
现在调用方法
List<Map.Entry<String, Integer>> actual = SUT.sortMap(map);
现在根据我们期望的 Map 处理方式测试顺序。对于 out map,键的顺序应该是“One”、“Two”、“Three”、“AnotherFour”、“Four”,值的顺序应该是 1、2、3、4、4。
Assert.assertEquals("One", actual.get(0).getKey());
Assert.assertEquals(1, actual.get(0).getValue());
Assert.assertEquals("Two", actual.get(1).getKey());
Assert.assertEquals(2, actual.get(1).getValue());
Assert.assertEquals("Three", actual.get(2).getKey());
Assert.assertEquals(3, actual.get(2).getValue());
Assert.assertEquals("AnotherFour", actual.get(3).getKey());
Assert.assertEquals(4, actual.get(3).getValue());
Assert.assertEquals("Four", actual.get(4).getKey());
Assert.assertEquals(4, actual.get(4).getValue());
地图有更方便的方式
assertThat(testList)
.contains(Assertions.entry("one", 1), Assertions.entry("two", 2));