gpt4 book ai didi

java - Junit (3.8.1) 测试是否抛出异常(在单元测试中有效,添加到 testSuite 时失败)

转载 作者:行者123 更新时间:2023-12-02 08:34:42 24 4
gpt4 key购买 nike

我正在尝试测试我是否在适当的时候抛出异常。在我的测试类中,我有一个类似于以下的方法:

public void testParseException() {

try {
ClientEntitySingleton.getInstance();
fail("should have thrown exception.");
} catch (RuntimeException re) {
assertEquals(
"<exception message>",
re.getMessage());
}
}

每当我运行单个 unitTest 类时,这都可以正常工作(绿色条)。但是,当我将该测试添加到 testSuite 时,我收到了关于异常的红色条单元测试失败报告。

还有一件事...它可以在 testSuite 中工作,如果它是套件中的第一个测试。实际上,我正在做其中两个测试,并且刚刚发现,如果我将它们作为套件中的前两个测试,一切都很好,但是如果在其之前进行“常规”测试,我会遇到此失败。所以我有一个解决方法,但没有真正的答案。

有什么想法吗?

这是“失败”的堆栈跟踪

java.lang.RuntimeException:ProcEntity 客户端 dn="Xxxxxx/Xxxx/XXX"被定义多次。 在 com.someco.someprod.clientEntityManagement.ClientEntitySingleton.addClientEntity(ClientEntitySingleton.java:247) 在 com.someco.someprod.clientEntityManagement.ClientEntitySingleton.startElement(ClientEntitySingleton.java:264) 在 org.apache.xerces.parsers.AbstractSAXParser.startElement(来源未知) 在 org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(来源未知) 在 org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(来源未知) 在 org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(来源未知) 在 org.apache.xerces.parsers.XML11Configuration.parse(来源未知) 在 org.apache.xerces.parsers.XML11Configuration.parse(来源未知) 在 org.apache.xerces.parsers.XMLParser.parse(来源未知) 在 org.apache.xerces.parsers.AbstractSAXParser.parse(来源未知) 在 com.someco.someprod.clientEntityManagement.ClientEntitySingleton.parse(ClientEntitySingleton.java:216) 在 com.someco.someprod.clientEntityManagement.ClientEntitySingleton.reload(ClientEntitySingleton.java:303) 在 com.someco.someprod.clientEntityManagement.ClientEntitySingleton.setInputSourceProvider(ClientEntitySingleton.java:88) 在 com.someco.someprod.clientEntityManagement.test.TestClientBase.setUp(TestClientBase.java:17) 在 com.someco.someprod.clientEntityManagement.test.TestClientEntityDup.setUp(TestClientEntityDup.java:8) 在 junit.framework.TestCase.runBare(TestCase.java:125) 在 junit.framework.TestResult$1.protect(TestResult.java:106) 在 junit.framework.TestResult.runProtected(TestResult.java:124) 在 junit.framework.TestResult.run(TestResult.java:109) 在 junit.framework.TestCase.run(TestCase.java:118) 在 junit.framework.TestSuite.runTest(TestSuite.java:208) 在 junit.framework.TestSuite.run(TestSuite.java:203) 在 junit.framework.TestSuite.runTest(TestSuite.java:208) 在 junit.framework.TestSuite.run(TestSuite.java:203) 在org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

最佳答案

在没有看到其余代码的情况下很难判断,但是是否有其他测试正在使用 ClientEntitySingleton 并调用其 getInstance 方法?如果您有一个惰性初始化单例,那么它不会被多次初始化。

您是否尝试将测试 fork 到单独的 JVM 中并查看问题是否仍然存在?

关于java - Junit (3.8.1) 测试是否抛出异常(在单元测试中有效,添加到 testSuite 时失败),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2248214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com