jmockit 的使用示例-08可否Mock final的类和方法?

目标测试代码

package jmockit.target;

/**
 * 只有一个final方法的final类,用于示例可以进行final方法的mock
 * 
 * @author Ginge
 * 
 */
public final class FinalClassNMethod {
	public final String getRealName(String memberId) {
		return "you";
	}
}

 

mock 代码

package jmockit.sample;

import jmockit.target.FinalClassNMethod;
import junit.framework.Assert;
import mockit.Expectations;
import mockit.Mocked;

import org.junit.Test;

/**
 * jmockit以外的其它mock实现都不能mock final的类和final方法,本例子示範mock final的类和final的方法。
 * @author Ginge
 * 
 */
public class FinalClassNMethodTest {
	@Mocked//这是一个final类
	private FinalClassNMethod FinalClassNMethod = null;

	@Test
	public void mockFinal() {

		new Expectations() {
			{
				FinalClassNMethod.getRealName(withAny(""));
				result = "FinalClassNMethod";
			}
		};

		Assert.assertEquals("FinalClassNMethod", FinalClassNMethod
				.getRealName(""));

	}
}

 

你可能感兴趣的:(JUnit)