@Test(expected=...)
@Test(expected=NullPointerException.class)
public void nullPointerTest() {
Object o = null;
o.toString();
assertTrue(false);
}
这个测试通过了,因为它得到的是nullpointerexception,但是,显然存在一个带有asserTrue(false)的断言错误,因此我希望它失败。
解决这个问题的最好方法是什么?解决这个问题的方法可能是下面的,但我不知道这是否是正确的方法。
@Test
public void nullPointerTest2() {
boolean caught = false;
try{
Object o = null;
o.toString();
}
catch(NullPointerException e)
{
caught = true;
}
assertTrue(caught);
assertTrue(false);
}
第二次测试如预期的那样失败了。
考虑:
@Test(expected=NullPointerException.class)
public void nullPointerTest2() {
boolean caught = false;
try{
Object o = null;
o.toString();
}
catch(NullPointerException e)
{
// test other stuff here
throw e;
}
}
这允许进行额外的检查,同时仍然充分利用JUnit内置的异常检查。
此外,我认为在许多情况下使用@Rule ExpectedException
比Expecte
更好。
主要内容:1 概述,2 JUnit 4异常测试示例,3 结论1 概述 在本指南中,我们将学习如何测试具有意外条件的方法引发的异常。 2 JUnit 4异常测试示例 有三种方法可以处理异常。 预期的异常 ExpectedException规则 Try/Catch Idiom 2.1 预期的异常 您如何验证代码是否按预期抛出异常?验证代码能否正常完成很重要,但是确保代码在异常情况下的行为也很重要。例如: 此代码应引发IndexOutOfBoundsExcept
主要内容:1. 运行时异常,2. 检查异常在本教程中,我们将演示如何使用TestNG expectedExceptions来测试代码中的预期异常抛出。 创建一个名称为 ExpectedExceptionTest 的 Maven 工程,其结构如下所示 - 1. 运行时异常 此示例显示如何测试运行时异常。 如果方法抛出一个运行时异常 — ,它会获得通过。 创建一个测试文件:TestRuntime.java ,其代码如下所示 - 运行上面代码,
问题内容: 我正在尝试对其他人编写的代码进行JUnit测试,但是我无法弄清楚如何测试该异常,因为该异常似乎缺少类型。 我的JUnit代码段: 我知道我需要在测试的括号中加上期望的=(某种异常类型),但是对于异常类型我一无所知。 问题答案: 实际上,在JUnit 4.7中有一个替代方法是使用和 在测试用例中,您声明带有,并为其指定默认值。然后,在预期异常的测试中,将值替换为实际预期值。这样做的好处是
java.lang.AssertionError:预期测试将在org.junit.Assert.Fail(Assert.java:88)在org.junit.rules.ExpectedException.FailduetOmissingException(ExpectedException.java:263)在org.junit.rules.ExpectedException.Access$20
我不熟悉GSON和改装,这是我的输出模型(仅供参考结构), 这是我的输出 这是我的改装代码 应为BEGIN_对象,但为BEGIN_数组“ 我尝试过用List替换RootObject
Im使用spring 3.0.7、JUnit 4.11和DBUnit 2.4.9。我试图在保存未指定多对一关系(设置为null)的实体时测试trowing异常。以下是实体: 我创建了以下测试: AbstractDatabaseTest扩展了AbstractTransactionalJUnit4SpringContextTests。 试验方法为: 但是当我做测试的时候 当我像这样将预期异常更改为Da