【问题标题】:If an exception is thrown will test fail? [duplicate]如果抛出异常,测试会失败吗? [复制]
【发布时间】:2013-11-06 15:07:25
【问题描述】:

如果 junit 测试抛出异常:

public void mytest throws InvalidUsageException

这是否意味着如果测试抛出 InvalidUsageException 测试将失败?

如果是这样,将异常包装在 try/catch 块中并明确抛出异常失败是否更好?

【问题讨论】:

标签: java junit


【解决方案1】:

如果抛出此异常,测试将失败。 如果你的测试是看是否有某个异常抛出,你应该像

一样开始你的测试
@Test(expected=InvalidUsageException.class)
  public void mytest {
    ...
  }

【讨论】:

    【解决方案2】:

    首先,是的,你的测试会失败。

    其次,我不会使用 try catch 进行包装。如果发生异常,您希望让它发生,以便您知道发生了错误,而不仅仅是方法本身的错误。

    【讨论】:

      【解决方案3】:

      是的,它们会失败。如果您期望异常,请使用@Test(expect=ExceptionClassName.class

      【讨论】:

        【解决方案4】:

        你说的可能是一种解决方案

        public void mytest() {
          try {
             // your code
             fail();
          } catch (InvalidUsageException e) {
             // success 
          }
        }
        

        一种更快的方法(但我不会说得更清楚)

        @Test (expected = Exception.class)
        public void mytest() {
          // your code
        }
        

        更多这样的例子在这里http://www.vogella.com/articles/JUnit/article.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-02-24
          • 2018-01-29
          • 2023-03-28
          • 1970-01-01
          相关资源
          最近更新 更多