本问题已经有最佳答案,请猛点这里访问。
我需要编写一个JUnit测试用例,它将测试一个传递不同排列的函数,并得到相应的结果。
成功的用例不返回任何内容,而失败的排列会抛出异常(异常类型无关紧要)。
例如。testAppleisSweetAndRed(水果,颜色,味道)
测试会调用以下内容 -
testAppleisSweetAndRed(orange,red,sweet)//throws exception
testAppleisSweetAndRed(apple,green,sweet)//throws exception
testAppleisSweetAndRed(apple,red,sour)//throws exception
testAppleisSweetAndRed(apple,red,sweet)//OK
如果调用的行为符合预期,则测试成功。
断言如何捕获前3次调用以确保它们确实引发预期的异常?
一个选项是@Test(expected = ArithmeticException.class)(替换您期望的异常类或只使用Exception.class)。
测试涉及4次调用 - 而个别调用会引发异常 - 测试不应该
@IUnknown你应该将测试分成4个测试用例,每个测试用一个断言。 这是最佳实践,否则一个失败可能会隐藏另一个失败。
如果您使用的是JUnit 4或更高版本,则可以按如下方式执行。 你可以使用
@Rule
public ExpectedException exceptions = ExpectedException.none();
这提供了许多可用于改进JUnit测试的功能。 如