单元测试退出应用程序的Java构造函数

den*_*chr 0 java junit unit-testing

重复:Java:如何测试调用System.exit()的方法?


我在为通过调用退出应用程序的方法设计单元测试时遇到了一些麻烦system.exit().实际上,这是一个类的构造函数,它测试某些条件并决定退出应用程序.所以我想测试这种特殊的可能性.

是否有一个特定的断言,我可以使用,或任何其他建议?

public MyClass(arg1, arg2, arg3){
    if(argsTestingIsOK){
        continue;       
    }else{
        System.exit(0);
    }
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ell 7

而不是exit()在构造函数中,而是抛出IllegalArgumentException(因为那是真正发生的事情)并将其留给调用者来处理异常.可以编写应用程序代码来处理异常,而JUnit测试可以断言发生异常.