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 注解哈.