从单独的类/方法调用HashMap数据

时间:2015-06-18 18:48:10

标签: java hashmap

我的问题围绕如何从主Junit测试类调用我存储在另一个方法中的HashMap数据。

@Test
public void pciTest() throws Exception {
    HashMap<String, String> examples = new HashMap<String, String>();

    examples.put(pciTestData());

    //Remaining testing code below

   }

//Storing Data Here

public HashMap<String,String> pciTestData() {
    HashMap<String, String> examples = new HashMap<String, String>();

    public static HashMap<String, String> getExamples() {

        return examples;
    }

    examples.put("credit card", "4929028573388403\n" +
            "4024007140713941\n" +
            "4528684534391095\n" +
            "5188872375900391\n" +
            "5449835900541183\n" +
            "5525878422452056\n");
            //more data below
    }

我想从pciTestData()获取数据并将其放在pciTest()中的HashMap示例中,如examples.put(pciTestData())部分所示。

getExamples()方法是一种占位符,因为我正在测试各种方法,不确定是否需要它。

我已经尝试了pciTestData()。get.keySet()但是返回了一个错误。

2 个答案:

答案 0 :(得分:0)

只需examples.putAll(pciTestData()),代替examples.put(pciTestData())。 或者,因为在从pciTestData获取数据之前,您似乎没有在pickets的示例中添加任何内容,所以您可以examples = pciTestData().

getExamples()方法没有用(如果我正确地读取代码,在另一个方法中声明静态方法也很奇怪。)

答案 1 :(得分:0)

你想要达到什么目标?

根据我的理解,我想您要复制测试变量pciTestData()examples方法返回的结果地图?

如果要复制地图的内容,可以使用Map#putAll((Map<? extends K,? extends V> m)

examples.putAll(pciTestData());

如果你只是想从另一个方法(这里是测试方法)访问你的方法结果,你只需要实例化你的变量,就像任何其他方法一样:

examples = pciTestData();