【问题标题】:How to write a test case method having System.exit() using Junit 5?如何使用 Junit 5 编写具有 System.exit() 的测试用例方法?
【发布时间】:2022-01-05 00:03:04
【问题描述】:

场景:在集成测试期间要测试的负面场景之下。当前测试用例因退出而失败并且未到达测试方法。

示例:

private void method1(int a){
try{
  if(a == 0){
    throw exception();
  }else{
     ---
  }
 }catch(exceptionclass e){
    System.exit(1);
 }
}

【问题讨论】:

    标签: junit5 system.exit


    【解决方案1】:

    在我看来,在对象上调用方法会导致 JVM 存在,这听起来很糟糕。通常应该在main方法中完成。

    所以我会重构你的代码,这样你的测试对象会抛出一种Exception 来指示发生了某种致命错误,这样主方法就可以捕获它并终止 JVM。

    然后你可以简单地测试它是否会从你的测试用例中抛出这个Exception

    【讨论】:

    • 实际上我必须将退出代码返回给shell脚本以进一步处理
    • 让main方法返回而不是由an对象返回
    • 对不起,我还是不清楚,从方法级别或从主方法调用 System.exit(1),有什么不同?无论哪种方式集成测试用例都会失败吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-17
    • 1970-01-01
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多