浏览 1283 次
该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-13
package jmockit.sample; import jmockit.target.OfferPostAction; import jmockit.target.WinportUrlServiceImpl; import junit.framework.Assert; import mockit.Mocked; import mockit.NonStrictExpectations; import mockit.Verifications; import org.junit.Test; /** * 一个完整的Mock会有三个步骤,步骤一、record (录制);步骤二、replay 在此阶段,录制的方法可能会被调用;步骤三、验证。如果是Expectations就没有必要做Verifications了。 * @author Ginge * */ public class RecordReplayVerificationTest { @Mocked private WinportUrlServiceImpl winportUrlService = null; private OfferPostAction offerPostAction = new OfferPostAction(); @Test public void testofferPostActionExecute() { final String memberId = "test2009"; // 步骤一、record (录制) new NonStrictExpectations() { { // 期望被mock的调用,以及被调用时返回的结果 winportUrlService.hasWinport(memberId); result = false; // 也可以是returns(false); // 总共可以调用的次数 times = 1; } }; // 步骤二、replay 在此阶段,录制的方法可能会被调用 Assert.assertEquals(false, offerPostAction.hasWinport(memberId)); try{ offerPostAction.getWinportUrlThrowException(memberId); }catch(Exception e){ //fully mock,默认完全被mock,到这里就注定失败 Assert.fail(); } // 步骤三、验证步骤二中,mock方法是否被调用,本步骤可以省略 new Verifications() { { winportUrlService.hasWinport(withAny("")); times = 1; } }; } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |