java unit test Mock框架jMockit示例教程 - 入门示例,mockjmockit,最简单的Mock示例;我
分享于 点击 37910 次 点评:126
java unit test Mock框架jMockit示例教程 - 入门示例,mockjmockit,最简单的Mock示例;我
最简单的Mock示例;我们要在需要mock的类加上注解@Mocked或者@NonStrict;录制Expectations可有可没有。没有录制时,被mock的方法只会返回一个默认的值。验证Verifications可以有,也可以没有。
package cn.outofmemory.jmockit.sample; import jmockit.target.WinportUrlService; import junit.framework.Assert; import mockit.Expectations; import mockit.Mocked; import org.junit.Test; /** * jMockit 入门示例 * * @author Ginge * */ public class IntroductionTest { @Mocked // Mock的类型有Mocked和NonStrict private WinportUrlService winportUrlService = null; @Test public void testNoExpectations() { final String memberId = "test2009"; Assert.assertEquals(false, winportUrlService.hasWinport(memberId)); } @Test public void testWithExpectations() { final String memberId = "test2009"; // 也可以是NonStrictExpectations//非严格的,所有声明的调用,声明的次数,返回的结果不用完全匹配 new Expectations() {// 这种是严格的,所有声明的调用,声明的次数,返回的结果都会完全匹配 { // 期望被mock的调用,以及被调用时返回的结果 winportUrlService.hasWinport(memberId); result = false; // 也可以是returns(false); // 总共可以调用的次数 times = 1; } }; // 步骤二、replay 在此阶段,录制的方法被调用 Assert.assertEquals(false, winportUrlService.hasWinport(memberId)); } }
用户点评