欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java unit test Mock框架jMockit示例教程 - 入门示例,mockjmockit,最简单的Mock示例;我

来源: javaer 分享于  点击 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));      }  }  
相关栏目:

用户点评