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

java unit test Mock框架jMockit示例教程 - 静态部分mock示例,mockjmockit,静态部分mock示例,靜

来源: javaer 分享于  点击 9604 次 点评:87

java unit test Mock框架jMockit示例教程 - 静态部分mock示例,mockjmockit,静态部分mock示例,靜


静态部分mock示例,靜態Mock是通过注解@Mocked中的字段methods声明的。

package jmockit.sample;  import jmockit.target.OfferPostAction;  import jmockit.target.WinportUrlServiceImpl;  import junit.framework.Assert;  import mockit.Expectations;  import mockit.Mocked;  import org.junit.Test;  /**  * 静态部分mock示例,靜態Mock是通过注解@Mocked中的字段methods声明的。  *   * @see  * @author Ginge  *   */  public class StaticPartialMockingTest {      @Mocked(methods = { "[hH]asWinport" }, inverse = false)      // 声明的方法可以使用正则表达式      // methods 代表只有声明的方法才会进行mock, inverse      // 代表是否反转声明,如果inverse=true,那么就是除了声明的方法不mock      private WinportUrlServiceImpl winportUrlService = null;      private OfferPostAction offerPostAction = new OfferPostAction();      @Test      public void testofferPostActionExecute() {          final String memberId = "test2009";          new Expectations() {              {                  // 期望被mock的调用,以及被调用时返回的结果                  winportUrlService.hasWinport(memberId);                  result = false; // 也可以是returns(false);                  // 总共可以调用的次数                  times = 1;              }          };          // 步骤二、replay 在此阶段,录制的方法可能会被调用          Assert.assertEquals(false, offerPostAction.hasWinport(memberId));          try {              // static partial mock,根据上述@Mocked注解的声明,WinportUrlServiceImpl#              // getWinportUrlmock将不会被mock              offerPostAction.getWinportUrlThrowException(memberId);              Assert.fail();          } catch (Exception e) {          }      }  }  
相关栏目:

用户点评