Spring单元测试
Contents
资源文件
将所有的资源文件, 放到测试包及测试资源下(如果没有的话).以免麻烦, 统一放到
classpath
下.
# 这放测试代码文件
src/test/java
# 这放测试资源文件
src/test/resource
进行单元测试
在要测试的类, 加上以下注解(类级别的)
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring.xml")
其中 spring.xml
为核心spring文件, 即容器统一管理的文件(不是Spring MVC
的那个在web.xml
里配置指向的文件,当然也可以是同一个,如果没有分开的话).
示例代码
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring.xml")
# spring boot 2 + Spring 5
# @RunWith(SpringRunner.class)
# @SpringBootTest
public class TestSpring {
@Autowired
private CCSessionMsgListener listener;
@Autowired
private RabbitTemplate rabbitTemplate;
@Test
public void test() {
System.out.println("11111111111111111");
}
@Test
public void listTest() {
CcSessionMsg ccSessionMsg = inqueue("yyy", "xxx", "test", System.currentTimeMillis(), new Date());
rabbitTemplate.convertAndSend("queue", ccSessionMsg);
}
@Test
public void outQueue(){
CcSessionMsg msg = (CcSessionMsg)rabbitTemplate.receiveAndConvert("queue");
listener.getSessionMsg(msg);
}
public CcSessionMsg inqueue(String fromOpenid, String toOpenid, String content, long mid, Date createAt) {
CcSessionMsg sessionMsg = new CcSessionMsg();
sessionMsg.setContent(content);
sessionMsg.setMid(mid);
sessionMsg.setCreateAt(new Timestamp(createAt.getTime()));
sessionMsg.setType(301);
sessionMsg.setFromOpenid(fromOpenid);
sessionMsg.setToOpenid(toOpenid);
return sessionMsg;
}
}
注意: 在每个要测试的方法里, 不要忘记了添加上 @Test
注解哈.