我的教授让我们使用了一个带有所有静态方法的实用程序类。当我尝试在JUnit测试中测试方法时,出现初始化错误。我已经包含了错误下面代码的代码和照片以及我认为构建路径的内容。我包含照片的原因是为了显示构建路径,以防它导致问题。 从图片中的代码可以看出,我还没有真正做过任何测试。
有人可以帮我查明错误并让我知道如何在JUnit中测试实用程序类的静态方法吗?
谢谢。
public class MorseCodeTest {
@Test
public static void testGetEncodingMap() {
//https://stackoverflow.com/questions/1293337/how-can-i-test-final-and-static-methods-of-a-utility-project
Map<Character, String> map = new HashMap<Character, String>();
map = MorseCode.getEncodingMap();
for (Map.Entry<Character, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " | " + entry.getValue());
}
}
/**
*
* @return the mapping of encodings from each character to its morse code representation.
*/
public static Map<Character, String> getEncodingMap(){
Map<Character,String> tmpMap = new HashMap<Character,String>();
Set<Map.Entry<Character,String>> mapValues = encodeMappings.entrySet(); // this is the Entry interface inside of the Map interface
//the entrySet() method returns the set of entries aka the set of all key-value pairs
//deep copy encodeTree
for(Map.Entry<Character,String> entry : mapValues){
tmpMap.put(entry.getKey(), entry.getValue());
} //end of enhanced for-loop
return tmpMap;
} //end of getEncodingMap method
答案 0 :(得分:1)
为了测试静态getEncodingMap,您的测试方法不必是静态的。测试方法是它自己的方法,与getEncodingMap静态无关。
@Test
public void testGetEncodingMap() {
*Your code here*
}