我想编写一个测试套件,用于使用springjunit runner测试我的服务。
我的服务将调用另一个服务并转换其输出并发送响应。
我认为服务器需要启动并运行,以便在运行junit时调用其他服务。
但有人告诉我,spring junit不需要服务器运行。
Spring容器看起来会很神奇。
我不太确定这是怎么发生的。
有没有人可以告诉我弹簧容器如何充当服务器?
如果它是如此愚蠢的问题,对不起。谢谢提前
答案 0 :(得分:0)
你需要服务器来运行java.class,答案是否定,除非你有从你的服务调用任何ejb组件,或者你的服务需要一些外部Web服务 响应(在这里您可能需要模拟此服务以提供模拟数据或在服务器上运行服务) 我有调用数据访问层的服务,有时服务调用另一个服务。
您需要在测试类中使用spring上下文配置
@ContextConfiguration({ "classpath:spring-context.xml", "classpath:otherservice-context.xml"})
@RunWith(SpringJUnit4ClassRunner.class)
@Component
public class TestJuint{
@Autowire
private otherService otherServiceImpl;
@Autowire
private service serviceImpl;
@Test
public void testDummy{
serviceImpl.addDummy(dummyObj);
}
}
假设您需要从其他软件包中获得其他服务,那么您可能希望将其上下文文件包含在上下文配置中,以便在自动装配时将其bean引用放在spring上下文中