随笔 - 5  文章 - 0  评论 - 4  阅读 - 2359

单元测试工具Junit浅谈

什么是单元测试?

  写了一个类和一些方法,给别人用,会不会有bug?那就测一下这些方法吧

怎么测?

  用main方法测?不能一起运行,需要人为观察输出是否正确,测试效率低

单元测试能带来什么好处?

  emmm,重用测试,应对将来的功能的变换;”甩锅“,明确知道自己的代码没问题;“长痛不如短痛”:测试的尽早介入原则,测试贯穿整个开发流程,bug发现的越早,用来修复bug的代价越低
样例代码和jar包:Coding

1.选择开发工具

操作系统 window10
JDK 1.8.0_71
开发语言 java
开发工具 eclipse Mars Release (4.5.0)
单元测试工具 Junit4.12
  • 我选择的开发工具是eclipse,由于我之前安装过,所以不在这里介绍安装过程,有需要的可以自行百度。

  • 单元测试工具选用的Junit4.12,junit44.8需要的jdk版本是jdk1.5以及以上,junit4.94.12需要jdk1.6以及以上,如果使用的是junit5需要的jdk版本就必须是jdk1.8以及以上。除了junit测试工具,还有TestNG测试框架,有时间的话,后面会出一个教程。

  • 单元测试工具jar包的获取
    - IDE自带

    - 官网获取:https://junit.org/junit4/ 
    - 第三方仓库:http://maven.aliyun.com
    

       http://search.maven.org/
       https://code.google.com/

2.单元测试过程

  • (1)编写需要被测试的java类
      创建类Calculate

  • (2)编写测试类

  利用Eclipse自带的Junit4进行单元测试,在包名右键->new->JUnite Testt Case;
  

  这里选择JUnit 4 test,测试类名一般为XxxTest,因为我们测试Calculate类,所以测试类名为CalculateTest,点击下面的Class under test旁边的Browse..来选择被测试的类
  
  选中我们被测试类Calculate,点击OK
  
  因为我们选用Eclipse自带的Junit4,所以这里直接勾上Perform the following action,点击OK
  
  

  • (3)运行测试类

  • (4)测试结果展示
    keeps the bar green to keep the code clean

  

3.参数化自动测试

  • (1)编写测试类
      
  • (4)测试结果展示
      

4.使用测试套件测试

  在包名上右键->new->other(或者使用快捷键Ctrl+N)。
  

  选中Junit Test Suite,点击Next。
  

  选择JUnit 4 suite,填写套件名AllTests,选择套件需要包含的测试类,点击Finish。
  

  生成的测试套件类如下:。
  

  运行该测试套件类,结果如下:
  

5、总结

JUnit4 Annotation

  1. @Test: 测试方法
      a) (expected=XXException.class)
      b) (timeout=xxx)
  2. @Ignore: 被忽略的测试方法
  3. @Before: 每一个测试方法之前运行
  4. @After: 每一个测试方法之后运行
  5. @BeforeClass: 所有测试开始之前运行 一般用于准备测试需要的资源,比如开启和数据库的连接
  6. @AfterClass: 所有测试结束之后运行 用于关闭测试需要的资源,比如关闭跟数据库的连接

注意

  1. 遵守约定,比如:
      a) 类放在test包中
      b) 类名用XXXTest结尾
      c) 方法用testMethod命名

最后再贴上一个使用testNG测试框架的博客链接:TestNG 入门教程

posted on   嘿,人  阅读(1110)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

$(document).ready(function(){ $("
").appendTo($("body")).bind("click", function(){ $("body,html").animate({ scrollTop: 0 }, 150); }); $('#cnblogs_post_body pre').find('>code').parent().css({'border':'dashed 1px #aaa','border-left':'solid 2px #6CE26C'}); $("#cnblogs_post_body").append('

感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接
'); });
点击右上角即可分享
微信分享提示