用于检查参数的JUnit测试用例

时间:2016-01-11 10:25:19

标签: java junit testcase

被修改 我正在学习如何使用JUnit编写测试用例。免责声明:我还没有理解我在网上发现的任何相关内容。 :) 我想为此写一个简单的测试用例: 我有一个简单的Java类,它接受参数作为main函数的参数并打印它。这段代码已经没有了。 编辑:

这是我的主要功能:     public static void main(String args []){

    //Expecting 3 arguments: 1. InputDirectory path, 2. OutputDirectory path, 3. Keys-comma separated

    checkArguments(args);

.....

private static void checkArguments(String[] args) {
    // TODO Auto-generated method stub
    if (args.length != 3) {
        try {
            System.out.println("Invalid input arguments");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return;
    }
}

}

这个主要功能代码效果很好。现在我需要编写一个测试用例,以便检查有多少输入并相应地打印消息。 到目前为止,我写了这个:

FilterProcessPDK checkArg = new FilterProcessPDK();
int testCheckArgRes = checkArg.checkArguments(); //I dont know how to pass the arguments to this function

@Test
public void testCheckArgs(){
    assertEquals("message", expected, actual);
}

为此,我将给出输入 - 1)输入路径(C:/ xyz /输入)2)输出路径(C:/ xyz /输出)3)任意数量的“键”列表(“一个“或”A,j“)

1 个答案:

答案 0 :(得分:2)

自1998年我第一次意识到Junit以来,我一直在用Junit编写测试,但我从未见过这样的测试。

我认为这不合适。

我必须承认,我通常不会测试主要方法。它应该精心编排一些我测试得很好的其他东西。当我接触主要方法时,我已经有足够的覆盖率和信心,我不会测试输入和输出问题。

更好的解决方案是按合同编程:让您的主要方法强制执行所需输入的前提条件。如果用户提供的输入不正确,请告知他们。