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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JUnit test 如何做Java静态方法测试相关的知识,希望对你有一定的参考价值。

@Test public String getStringInfo()... 上面这个JUnit测试失败,说必须是void动态方法. 请问下各位大牛, 有什么方法可以测试静态方法呢(有参数返回)?

使用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);
    
参考技术A 测试只允许你使用void 方法 如果说你别的方法是静态的有返回值的 你完全可以包装一成本回答被提问者采纳 参考技术B 写个main函数不就行了,直接类名.方法名

以上是关于JUnit test 如何做Java静态方法测试的主要内容,如果未能解决你的问题,请参考以下文章

为啥使用Junit Test而不用普通java main方法来完成测试?

JUnit Test Assert

Java Junit单元测试

聊聊单元测试——Spring Test+JUnit完美组合

JAVA单元测试

JAVA单元测试