在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 中的代码与测试方法同步。维护成本高,从不推荐。