在Testng中模拟哈希图

时间:2019-01-17 07:09:50

标签: junit testng testng-eclipse

我正在为以下方法编写测试用例

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");
  }

1 个答案:

答案 0 :(得分:1)

您正在测试的方法将返回填充了少量条目的地图。但是,您的Junit测试未调用该方法。考虑一下getColumnToIndexMap()的方法主体随时间而变化的情况,您是否认为您的测试用例仍然适用?

如果getColumnToIndexMap()也采用删除某些条目该怎么办,您的测试也会涵盖删除检查吗?不可以,除非您不断将Junit中的代码与经过测试的方法保持同步。维护成本很高,从不推荐。