Я запускаю некоторые модульные тесты, используя Spring и Mockito. Я настроил издевается в springcontext.xml следующим образом:Весна Контекстная проблема во время работы unit test
<bean id="featureEndpoint" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="com.company.blah.blah.FeatureEndpoint" />
</bean>
Мой тестовый класс построен следующим образом:
@ContextConfiguration(locations= {"/springcontext.xml"})
public class FeatureEndpointValidationTest extends JsonEndpointValidationTest {
private FeatureEndpoint featureEndpoint;
@BeforeClass
public void setUp() {
featureEndpoint = getBean("featureEndpoint");
super.setEndpoint(featureEndpoint);
}
@Test
.
.
.
}
Когда я запускаю этот тест, getBean() бросает NPE, потому что контекст нулевой. ОДНАКО, если я переименую тестовый класс, чтобы сказать TestEndpoint (или что-либо, у которого нет строки «Feature», она работает отлично. Im смущает это поведение. Я искал все другие файлы конфигурации для любых конфликтов имен, но ни один из них они имеют какой-либо компонент, который содержит имя «функцию» Любые подсказки относительно того, почему это происходит
Вот след за исключением брошено:.?
java.lang.NullPointerException
at com.foo.bar.UnitTest.getBean(UnitTest.java:14)
at com.foo.bar.service.api.rest.FeatureEndpointValidationTest.setUp(FeatureEndpointValidationTest.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:580)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:398)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:145)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:82)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:167)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:104)
at org.testng.TestRunner.runWorkers(TestRunner.java:712)
at org.testng.TestRunner.privateRun(TestRunner.java:582)
at org.testng.TestRunner.run(TestRunner.java:477)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:324)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:319)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:292)
at org.testng.SuiteRunner.run(SuiteRunner.java:198)
at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:821)
at org.testng.TestNG.runSuitesLocally(TestNG.java:788)
at org.testng.TestNG.run(TestNG.java:708)
at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:62)
at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:141)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Благодаря