zoukankan      html  css  js  c++  java
  • 如何提高j2ee项目的单测覆盖率

    目前觉得j2ee项目单测覆盖率不高的原因主要有以下几个:

    1. 大家开发时间紧张,写完就联调,联调完就提测,没有时间做单测;

    2. 大量代码放在action中,和前端输入耦合在一起,不方便单测;

    3. 和外部接口紧密耦合,外部接口不稳定,或者数据不可预知,无法进行单测;

    4. 有些方法逻辑复杂,想要run起来需要复杂的环境搭配,代价太大,让人望而却步,也就不单测了。

    借鉴一下同事的经验,结合自己的想法,总结如下:

    1. 针对第一个问题,实在没有好的办法,在各方面的压力下,难以坚守自己的原则;

    2. 第二个问题可以解决,把action拆开,每个action执行一个独立的逻辑。每个action专注于和user进行交互,数据放入model中,业务逻辑放入service中,一些工具方法放入静态类中。每个方法目的单一,易于复用,也易于单测;

    3. 第三个问题可以用mock来解决。Mock有两种方式,用自己的实现替换原有的实现,保持接口不变。用mockito,给接口一个临时的实现。不管用那种方式可以保证单测不受外界的影响。但是mock做不了复杂的事情,所有和外界接口的地方最好集中起来,不要四处分散,导致mock的成本很高;

    4. 复杂的方法是单测的大忌。复杂方法的特点是输入很多,输出很多,调用的方法很多,逻辑分支很多。很难用一个简单的测试进行覆盖。因此对付它唯一的办法就是break down,一个原则是if的嵌套不超过3层,参数不超过5个,总行数不超过50行。当然这只是参考,不是绝对的。

  • 相关阅读:
    nodejs 实现简单的文件上传功能
    url地址数据转换成json数据格式
    html布局,左侧固定右侧自适应
    JavaScript事件
    如何用CSS进行网页布局
    选项卡教程(源代码)
    css切图教程
    前端学习的大概路线
    AJAX之学习笔记(持续更新......)
    nginx命令详解
  • 原文地址:https://www.cnblogs.com/alphablox/p/2806519.html
Copyright © 2011-2022 走看看