我想为使用Spring MVC的应用程序编写一些单元测试。我在Spring主页上阅读了手册页:http://static.springsource.org/spring/docs/current/spring-framework-reference/html/testing.html
,看来这个Spring测试框架真的很有用。
但问题如下:
1.如果我理解正确,要使用任何注释进行测试,例如@ContextConfiguration
,我需要使用@RunWith(SpringJUnit4ClassRunner.class)
吗?但是有可能使用两个跑步者(可能不是),我只是想知道是否可以使用Spring runner和mockito,因为我使用mockito来模拟普通对象。
2.我有一个关于使用@ContextConfiguration
加载xml上下文文件的问题。我在src/main/webapp/WEB-INF/spring
中有我的.xml文件,如何使用ContextConfiguration
加载它们?我试过了
@ContextConfiguration(locations="/webapp/WEB-INF/spring/root-context.xml")
@ContextConfiguration(locations="webapp/WEB-INF/spring/root-context.xml")
@ContextConfiguration(locations="/WEB-INF/spring/root-context.xml")
@ContextConfiguration(locations="WEB-INF/spring/root-context.xml")
@ContextConfiguration(locations="/src/main/webapp/WEB-INF/spring/root-context.xml")
@ContextConfiguration(locations="src/main/webapp/WEB-INF/spring/root-context.xml")
但我总是得到class path resource [some_path] cannot be opened because it does not exist
。我想知道我应该使用哪条路径?
编辑: 第二个问题是WEB-INF不在类路径中,这是帮助我的主题Location of spring-context.xml
答案 0 :(得分:5)
不,你不能拥有两个@RunWith
,而是应该使用Mockito提供的其他方式来创建Mock替身。
指定多个位置的方法是:
@ContextConfiguration(locations={"first.xml", "second.xml"})