JUnit test 如何做Java静态方法测试

2025-03-04 03:37:53
推荐回答(3个)
回答1:

使用junit测试Java静态私有方法,通过以下案例进行分析:

测试目标类如下:

package cn.outofmemory.junit;
public class TestTarget {
    /**
     * 移除正则表达式中需要转义的字符
     * @param w word
     * @return 移除正则表达式中需要转义的字符
     * @author Administrator
     * @date 2015-7-11
     */
    private static String convert4Regex(String w) {
        if (w == null) {
            return null;
        }
        String[] convertedChars = {"\\",".","+","*","(",")","{","}","[","]","?","/","^","$","|"};
        for (String c : convertedChars) {
            w = w.replace(c, "\\" + c);
        }
        return w;
    }
}

测试方法:

@Test
public void testConvert4Regex() throws Exception {
        String input = "A+";
        String expected = "A\\+";
        Method targetMethod = TestTarget.class.getDeclaredMethod("convert4Regex", String.class);
        targetMethod.setAccessible(true);
        Object actual = targetMethod.invoke(TestTarget.class, new Object[]{input});
        assertEquals(expected,actual);
    }

回答2:

测试只允许你使用void 方法 如果说你别的方法是静态的有返回值的 你完全可以包装一成

回答3:

写个main函数不就行了,直接类名.方法名