• 关于Mockito学习的一点自己的理解


    1. 如果要使用@Mockito ,则要加入MockitoAnnotations.initMocks

    MockitoAnnotations.initMocks 放在 junit 的 @Before 注解修饰的函数中更合适。

    MockitoAnnotations.initMocks 的一个替代方案是使用 MockitoJUnitRunner 。

     2.一些注意点:

    1.Dao层测试,直接用一些模拟数据,插入数据库,看看测试是否成功

    2.Service主要来测试缓存的

    3. web直接用Mock进行来测试

    3. 使用方式:

    方式一:

    @Test
        public void queryx() {
            String pin = "testPin";
            String ip = "127.0.0.1";
            when(XXXJsf.getPreSwitch(any(XXXXReq.class))).thenAnswer(new Answer<Object>() {
                @Override
                public Object answer(InvocationOnMock invocation) throws Throwable {
                    GenericResult<XXXX> genericResult = new GenericResult<>();
                    XXXX xjkCashierTradeRes = new xxx();
                    //符合切量
                    XXXXXRes.setxxxx(true);
                    //成功
                    genericResult.setSuccess(true);
                    genericResult.setCode("0000");
                    genericResult.setValue(XXXX);
                    return genericResult;
                }
            });
    下面一定要写调用的具体接口
    ResponseVo<XXXXX> responseVo = XXXXX.XXXX(pin, "127.0.0.1");
    log.info("XXXXX.res:{}", GsonUtils.toJson(responseVo));
     

    方式二:

    调用的时候会直接抛出异常信息,如果想让起抛出异常信息,则直接使用这个方式
    @Test
    public void testMktSaleOrder() throws Exception { String message = "XXXXX"; try {
            //注意下面两行代码的位置不能交换,必须先去定义调用就去抛出异常信息 doThrow(RuntimeException.
    class).when(XXXXJSF).asynxxxxeStock(any(XXXXckReq.class)); XXXXX.onMessage(message); } catch (Exception e) { } }

    方式三:

    @Before
        public void setup() {
            doReturn(1).when(XXXXXDao).insert(any(XXXXXXPo.class));
            doReturn(1).when(xxxDao).updateByxxxxId(any(XXXXXXPo.class));
            when(scoreXXXXDao.queryByIdxxxx(anyString())).then(invocationOnMock -> this.XXXXPo());
            when(scorXXXXDao.queryByConditionXXXX(any(XXXXXPo.class))).then(invocationOnMock -> {
                Page page = new Page();
                page.add(this.xxxxxPo());
                return page;
            });
        }

     

  • 相关阅读:
    SpringMVC传值、转发、重定向例子
    内存、指针操作函数
    文件、磁盘操作函数
    字符串、数组操作函数 Copy Concat Delete Insert High MidStr Pos SetLength StrPCopy TrimLeft
    Delphi代码模拟“显示桌面”的功能
    SQLite 入门教程(四)增删改查,有讲究
    NET Core
    Publisher/Subscriber 订阅-发布模式
    数据分片
    C#调用Java方法
  • 原文地址:https://www.cnblogs.com/cxy2020/p/13825354.html
Copyright © 2020-2023  润新知