我知道可以在JUnit中定义一个 “期望的” 异常,方法是:
@Test(expect=MyException.class)
public void someMethod() { ... }
但是,如果总是抛出相同的异常,却有不同的“嵌套” 原因 ,该怎么办 。
有什么建议?
您可以将测试代码包装在try / catch块中,捕获引发的异常,检查内部原因,记录/断言/任何内容,然后重新抛出异常(如果需要)。
我们有一个使用< code>Spring OAuth2的rest API。用户通过身份验证后,所有JSON响应都采用以下格式: 但是,身份验证失败的JSON响应与上述格式不符,因为这是由Spring处理的。 例如,在凭据不正确的情况下,客户端会获得带有JSON响应的HTTP状态代码400,如下所示: 如果用户帐户被锁定,客户端将获得 HTTP 状态代码 400,并按 JSON 响应进行如下操作 所
我想测试某个异常是用作为JUnit测试方法的某个部分中的异常原因抛出的。 测试方法本身不应该抛出异常--只是它的一个特定部分。
问题内容: 我正在尝试对其他人编写的代码进行JUnit测试,但是我无法弄清楚如何测试该异常,因为该异常似乎缺少类型。 我的JUnit代码段: 我知道我需要在测试的括号中加上期望的=(某种异常类型),但是对于异常类型我一无所知。 问题答案: 实际上,在JUnit 4.7中有一个替代方法是使用和 在测试用例中,您声明带有,并为其指定默认值。然后,在预期异常的测试中,将值替换为实际预期值。这样做的好处是
问题内容: 首先,我必须说,我一直在此站点上寻找我的问题的答案,我发现了有关此异常的多个主题,但毕竟所有主题对我没有太大帮助,所以这就是为什么我要发布这个。 每次尝试从包裹中恢复信息时,我都会遇到“包裹不可修复”异常。这是我的班级代码。 } 和我的活动代码(此活动检索一个意图,该意图带有我刚刚指定的类型的ArrayList) } LOGCAT: 问题答案: 更改此: 对此: 编辑: 而且看起来您的
java.lang.AssertionError:预期测试将在org.junit.Assert.Fail(Assert.java:88)在org.junit.rules.ExpectedException.FailduetOmissingException(ExpectedException.java:263)在org.junit.rules.ExpectedException.Access$20
在我自制的PHP MVC框架中,我编写了一个小错误处理程序,它将PHP错误包装在异常中,然后抛出它。 然后使用注册。除了致命的错误(没有双关语)之外,这一切都很好。我的自定义错误处理程序仍被调用,但我无法捕获抛出的。 这种错误的一个例子是试图包含一个不存在的文件: 调用我的自定义错误处理程序并抛出异常,但代码永远不会到达“catch”块。相反,PHP会生成HTML(糟糕!): 警告:未捕获异常“E