JMock

参见
http://www.iteye.com/topic/770438

JMock 默认是只支持针对接口的mock, 加了以下的设置可以对类进行mock
// set imposteriser to instance and CGLIB will be used,
context.setImposteriser(ClassImposteriser.INSTANCE);



第0章 概述
第1章 jmock初体验
第2章 期望
第3章 返回值
第4章 参数匹配
第5章 指定方法调用次数
第6章 指定执行序列
第7章 状态机

	@Test
	public void testFindAddress() {

		// 建立一个test上下文对象。
		Mockery context = new Mockery();

		// 生成一个mock对象
		final AddressService addressServcie = context
				.mock(AddressService.class);

		// 设置期望。
		context.checking(new Expectations() {
			{
				// 当参数为"allen"的时候,addressServcie对象的findAddress方法被调用一次,并且返回西安。
				oneOf(addressServcie).findAddress("allen");
				will(returnValue(Para.Xian));
			}
		});

		UserManager manager = new UserManager();

		// 设置mock对象
		manager.addressService = addressServcie;

		// 调用方法
		Address result = manager.findAddress("allen");

		// 验证结果
		Assert.assertEquals(Result.Xian, result);

	}

你可能感兴趣的:(jmock)