zoukankan      html  css  js  c++  java
  • 关于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;
            });
        }

     

  • 相关阅读:
    开启safe_mode之后对php系统函数的影响
    解析posix与perl标准的正则表达式区别
    教你在不使用框架的情况下也能写出现代化 PHP 代码
    杭州逆行崩溃小伙首度回应
    PHP命令行脚本接收传入参数的三种方式
    PHP魔术方法使用总结
    Nginx服务器的rewrite、全局变量、重定向和防盗链相关功能
    重定向
    P2141 珠心算测验
    T2695 桶哥的问题——吃桶
  • 原文地址:https://www.cnblogs.com/cxy2020/p/13825354.html
Copyright © 2011-2022 走看看