您好 我有一个让我发疯的问题。我创建了一个单元测试,试图实例化一个对象。如果不能,则抛出异常
try{
testObject = new Target(2,4,true);
}
catch(Exception e){
AssertionError ae = new AssertionError("Unable to create a target");
ae.initCause(e);
throw ae;
}
然后我将它放入JUnit测试套件中。如果我选择套件,或单独测试并点击运行,我就没有问题。
另一方面,在Eclipse IDE中,如果我右键单击整个项目文件夹并单击运行JUnit测试,那么传递的测试现在会给我一些错误,例如indexoutofbounds。此测试不访问任何外部文件?那么运行位置如何有所作为呢。 Eclipse在这里做了些什么奇怪的事情吗?
此外,有没有办法让单个测试运行一次,然后当它到达测试套件文件时再次运行。
testCreateTarget(unit.targetTest) java.lang.AssertionError:无法创建目标 at unit.targetTest.testCreateTarget(TargetTest.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) 在junit.framework.TestCase.runTest(TestCase.java:154) 在junit.framework.TestCase.runBare(TestCase.java:127) 在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:130) 在org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) 引起:java.lang.IndexOutOfBoundsException:索引:1,大小:0
答案 0 :(得分:0)
问题是事先执行的测试改变了程序的状态。似乎有某种连续的测试执行,修改后的变量保持不变