这就是我的应用程序中测试的样子:
@Test (expected = UniqueFieldValueConstraintViolationException.class)
public void testName() {
Branch b1 = new Branch("tetsname","Test 234","06:00-17:00","098144658");
Branch b2 = new Branch("tetsname","Test 234","06:00-17:00","098144658");
db.store(b1);
db.store(b2);
db.commit();
}
com.db4o.constraints.UniqueFieldValueConstraintViolationException: class: dataModel.Branch field: pNumber at
我怎样才能避免这种行为呢?
从堆栈跟踪中,您可以看到此异常不是在testName()
方法中抛出的:它是由tests.BranchTests.Cleanup
抛出的,这可能是在您的实际测试之前或之后运行的一个单独的方法。
JUnit的expected
不会覆盖这些阶段期间引发的异常。要么确保这些故障不在这里发生,要么捕捉并忽略它们。
我在StackOverflow中搜索了相同类型的问题,并检查了每个响应,但仍然面临这个问题。我正在测试从名为readStream()的方法抛出的IOException,该方法确实抛出了IOException,但Junit使用AssertionException使测试失败。 下面是我的单元测试: 如您所见,我已经尝试让原始类中的异常实际抛出异常,而不是仅仅捕获并打印堆栈跟踪: 我还尝试使用注释@te
java.lang.AssertionError:预期测试将在org.junit.Assert.Fail(Assert.java:88)在org.junit.rules.ExpectedException.FailduetOmissingException(ExpectedException.java:263)在org.junit.rules.ExpectedException.Access$20
我正在使用Jenkins进行自动化测试。我的作业运行windows可执行批处理每天早上8:00归档,并向所有定义的收件人发送和通知。我有大约15个测试用例,都通过了。TestNG结果如下: 我交叉检查了詹金的所有配置。一切都如预期的那样,我的构建仍然失败,我每次都会得到这个报告: '控制台输出 由工作区F:\Automation\MovingWalls中的计时器构建启动未触发任何电子邮件。[Mov
问题内容: 如何在JUnit 4中将测试标记为预期的失败? 在这种情况下,我想继续运行此测试,直到上游修补了某些内容。忽略测试有点太过分了,因为我可能会忘记它。我也许可以添加注释并捕获由引发的异常,但这似乎也与预期的行为有关。 这是我当前的测试结果: 该断言应该会成功,但是由于上游错误,它不会成功。然而,这个测试是正确的。它应该成功。实际上,我发现的所有替代方案都具有误导性。现在,我认为这是我最好
我想测试某个异常是用作为JUnit测试方法的某个部分中的异常原因抛出的。 测试方法本身不应该抛出异常--只是它的一个特定部分。