开发者社区> 问答> 正文

关于 Java Web 开发的单元测试:报错

无论简单和复杂模块,大家都会去开发单元测试吗?
如果会开发,那是无论多简单的功能都会去写测试用例吗?
有没有公司不写测试用例的?理由是什么。
在开发进度紧张的时候,有没有公司不是做单元测试的,或者是暂时不做。

展开
收起
kun坤 2020-06-09 14:00:45 542 0
1 条回答
写回答
取消 提交回答
  • 首先,如何理解单元,还是那个分层测试的思想。
    你的ui,business,dao肯定有自己的单元测试,每一个测试都是有必要的。
    为了提高测试的效率引入了automation,如果能提高自动化测试的覆盖率,是不是就提高了测试效率。
    当然还是那句话,你的模块是否合理,测试框架的选择,持续集成都需要考虑.
    所以你的问题是很多公司都面临的问题,单元作还是不做?做到什么程度?怎么做?
    说白了这个不简单,需要从最基本的开发流程开始修改,你们的领导能在多大程度支持这个改进,这才是关键。
    最终的目的还是质量保证,我们大部分时候都是在偿还自己欠下的技术债务罢了。

    ######

    引用来自“jeffsui”的评论

    首先,如何理解单元,还是那个分层测试的思想。 你的ui,business,dao肯定有自己的单元测试,每一个测试都是有必要的。 为了提高测试的效率引入了automation,如果能提高自动化测试的覆盖率,是不是就提高了测试效率。 当然还是那句话,你的模块是否合理,测试框架的选择,持续集成都需要考虑. 所以你的问题是很多公司都面临的问题,单元作还是不做?做到什么程度?怎么做? 说白了这个不简单,需要从最基本的开发流程开始修改,你们的领导能在多大程度支持这个改进,这才是关键。 最终的目的还是质量保证,我们大部分时候都是在偿还自己欠下的技术债务罢了。

    我最近在做的项目就是没有单元测试的,接手以后弄了一些bug,有严重的也有不严重的。严重的直接导致了 App 的崩溃。
    最近计划做单元测试。项目的分层不是很严格的,基本上只有 dao 和 controller 两层。计划对新业务编写时引入业务层,然后只对业务层代码测试。这样就只对最复杂,最容易出问题的代码做单元测试。
    对新逻辑,严格遵守分层,特别是控制层代码,只放入参校验和数据返回,不混入任何业务。业务层在逻辑复杂的模块里,会比较庞大,大时候再考虑抽象。dao 层本身比较单纯也容易界定,测试压力会比较小。 ######这就是还债######一般都是对dao接口、service接口分别做单元测试,考虑各种情况下所期待的结果,做好对应的处理方式######

    针对数据操作的 单元测试的两种测试方式:

    1、直接在数据库内测试,这样的话需要分离数据初始化和数据清楚的逻辑,如果需要自动化运行单元测试,还需要控制好单元测试的执行顺序。如果抽象得好,我觉得还是可以接受的,特别如果使用了ORM框架,这个操作应该还是可以抽象得比较好的。

    2、使用内存数据库,把所有的CURD操作抽象出接口,然后测试的时候创建CURD操作的mock对象,mock对象操作内存数据库。这个需要你的程序CURD操作和业务逻辑操作完全分离出两层出来,对系统架构设计是有一定要求的。

    2020-06-09 14:00:53
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载