JUnit - 初始化程序错误中的异常

时间:2014-10-24 02:09:30

标签: java junit

我试图用静态方法测试一个类,并且我在这一行中有错误:

FormReferenceDataPopulator target = new FormReferenceDataPopulator();

以及失败追踪:

java.lang.ExceptionInInitializerError
  at au.necdl.pexa.web.document.form.FormReferenceDataPopulatorTest.<init>(FormReferenceDataPopulatorTest.java:15)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
  at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:187)
  at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:236)
  at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
  at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:233)
  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)  at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
  at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
  at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
  at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
  at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
  at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
  at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
  at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)      at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
  at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.RuntimeException: Could not locate bean of class [au.necdl.pexa.service.address.CountryService]
  at au.necdl.pexa.core.PexaContextAware.getBean(PexaContextAware.java:65)
  at au.necdl.pexa.web.document.form.FormReferenceDataPopulator.<clinit>(FormReferenceDataPopulator.java:29)    ... 23 more

1 个答案:

答案 0 :(得分:6)

堆栈中有几条线索追踪错误是什么

a)ExceptionInInitializerError - &gt; FormReferenceDataPopulatorTest。 这表示在构造此对象期间发生了错误。 ExceptionInInitializerError特别指出在静态初始化块或变量

期间发生异常的事实

<强>的ExceptionInInitializerError 表示静态初始化程序中发生意外异常的信号。抛出ExceptionInInitializerError以指示在评估静态初始化程序或静态变量的初始化程序期间发生异常。

b)像Robby在他的评论中指出的那样引起:java.lang.RuntimeException:无法找到类[au.necdl.pexa.service.address.CountryService]的bean显示错误的确切内容。