资源文件

将所有的资源文件, 放到测试包及测试资源下(如果没有的话).以免麻烦, 统一放到 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 注解哈.