在testng中模拟一个hashmap
Mocking a hashmap in testng
我正在为以下方法编写测试用例
protected Map<String, Integer> getColumnToIndexMap(String[] columns) {
Map<String, Integer> columnToIndexMap = Maps.newHashMap();
for (int i = 0; i < columns.length; i++) {
columnToIndexMap.put(columns[i], i);
}
return columnToIndexMap;
}
请告诉我测试用例是否正确
@Test
public void getColumnToIndexMapTest() {
String[] columns = {"Item1","Item2"};
Map<String, Integer> columnToIndexMap = Maps.newHashMap();
for (int i = 0; i < columns.length; i++) {
columnToIndexMap.put(columns[i], i);
}
Assert.assertTrue(columnToIndexMap.containsKey("Item2"));
Assert.assertEquals(columnToIndexMap.get("Item2"), "1");
}
您的测试方法正在返回填充了少量条目的地图。但是您的 Junit 测试没有调用该方法。考虑 getColumnToIndexMap()
的方法体随时间变化的情况,您认为您的测试用例是否仍然适用?
如果 getColumnToIndexMap()
也使用删除一些条目怎么办,您的测试是否也包括删除检查?不,除非您持续保持 Junit 中的代码与测试方法同步。维护成本高,从不推荐。
我正在为以下方法编写测试用例
protected Map<String, Integer> getColumnToIndexMap(String[] columns) {
Map<String, Integer> columnToIndexMap = Maps.newHashMap();
for (int i = 0; i < columns.length; i++) {
columnToIndexMap.put(columns[i], i);
}
return columnToIndexMap;
}
请告诉我测试用例是否正确
@Test
public void getColumnToIndexMapTest() {
String[] columns = {"Item1","Item2"};
Map<String, Integer> columnToIndexMap = Maps.newHashMap();
for (int i = 0; i < columns.length; i++) {
columnToIndexMap.put(columns[i], i);
}
Assert.assertTrue(columnToIndexMap.containsKey("Item2"));
Assert.assertEquals(columnToIndexMap.get("Item2"), "1");
}
您的测试方法正在返回填充了少量条目的地图。但是您的 Junit 测试没有调用该方法。考虑 getColumnToIndexMap()
的方法体随时间变化的情况,您认为您的测试用例是否仍然适用?
如果 getColumnToIndexMap()
也使用删除一些条目怎么办,您的测试是否也包括删除检查?不,除非您持续保持 Junit 中的代码与测试方法同步。维护成本高,从不推荐。