【问题标题】:Is it adviceable to throw an exception in Junit? [duplicate]在 Junit 中抛出异常是否值得建议? [复制]
【发布时间】:2015-09-08 10:45:03
【问题描述】:

我一直在宣扬处理异常并通过测试(如果有)。但是,这真的是正确的方法吗?无论如何,测试运行者将执行执行。为什么我们需要这样做?预测您的想法。

示例:假设 A.a() 抛出异常

@Test
public void exampleExceptionTest(){
try{
      A.a();
      //Assertion
   }
catch(Exception e){
 assert.fail();
 }
}

我应该把上面的改写成,

@Test
public void exampleExceptionTest()throws Exception{
 A.a();
 //Assertion
 }

【问题讨论】:

标签: java junit


【解决方案1】:

没有理由在单元测试中捕获异常只是为了执行显式fail()。如果遇到意外异常,测试将失败,因此最佳做法是按照您的第二个代码 sn-p:

@Test
public void exampleExceptionTest() throws Exception {
    A.a();
    //Assertion
}

【讨论】:

    【解决方案2】:

    可以使用@Test注解的expected参数

    @Test(expected=SomeException.class)
    public void exampleExceptionTest() {
        A.a();
        //Assertion
    }
    

    【讨论】:

      猜你喜欢
      • 2018-04-24
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 1970-01-01
      • 2021-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多