我有一个具有此项目结构的Web应用程序:
app-name
|- web
|- service-A
+- service-B
每个java项目都有自己的应用程序上下文XML配置/注释。现在我在service-B中编写测试,它使用来自service-A的一些Spring bean。 此时,我在Service-B中定义了BaseTest,具有以下配置。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext-KA-service-test.xml", "classpath:service_a_test.mockspring.xml" })
public class BaseTest {
...
}
服务-B中的和Junit测试扩展了BaseTest,如下所示:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext-WS-service-test.xml", "classpath:service_b_test.mockspring.xml" })
public class GeoInformationServiceImpl_2_Test extends BaseTest {
...
}
如果我删除"扩展BaseTest"从服务B,它抛出" java.lang.IllegalStateException:无法加载ApplicationContext"因为找不到Service-A中的某些bean。明显! 但如果我保持这种联系,我会遇到许多其他问题,如测试失败等。 我的配置中的另一个问题是, Service-A指的是Service-B中的bean B1。 Bean B1读取" src / test / resources / mockdata / geo_results.csv"中的文件。但是当在服务A测试中引用B1时,此语句失败,但在服务B测试中工作正常。
我的问题是,在JUnit测试中从service-A引用service-B中的Spring bean的合法方法是什么?