51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2473|回复: 1
打印 上一主题 下一主题

[转贴] 单元测试——了解 junit (个人学习分享)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-4-12 17:20:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.什么是单元测试

单元测试——是最小粒度的测试,以测试某个功能或代码块。一般由程序员来做,因为它需要知道内部程序设计和编码的细节。


2.什么是junit2.1 JUnit ——是一个开发源代码的Java测试框架,用于编写和运行可重复的测试。他是用于单元测试框架体系xUnit的一个实例(用于java语言)。主要用于白盒测试,回归测试。2.2 JUnit有很多功能可以简化测试的编写与运行。

(1)单独的classloader来运行每个单元测试以避免副作用。
(2)JUnit annotations注释提供很多资源初始化和回收的方法:
(3)各种各样的assert方法使它容易检查你的测试结果。
(4) 与流行的工具,如ant、Maven、及流行IDEs如:ecplise,NetBeans,JBuilder整合。


3.从代码上体验calculator 类
  1. public class Calculator {
  2.      public double add(double number1, double number2) {
  3.         return number1 + number2;
  4.     }
  5. }
复制代码

3.1一个简单的测试程序是怎样的?

  1. public class CalculatorTest {
  2.     public static void main(String[] args) {
  3.         Calculator calculator = new Calculator();
  4.         double result = calculator.add(10,50);
  5.         if (result != 60) {
  6.         System.out.println("Bad result: " + result);
  7.             }
  8.         }
  9. }
复制代码

3.2用JUnit编写的话

  1. import static org.junit.Assert.*;
  2. import org.junit.Test;
  3. public class CalculatorTest {  //先定义一个测试类。唯一的限制是类必须pulbic ,可以任何名字。这一点与JUnit3X有所不同。
  4. @Test            //通过@Test这个annotation声明这是一个测试方法。一般方法的命名为testXXX的模式。

  5. public void testAdd() {
  6.       Calculator calculator = new Calculator();   //通过创建Calculator类的实例(被测试的对象)开始了测试工作
  7. double result = calculator.add(10, 50);       //通过调用测试方法并传递2个已知值来执行测试
  8.       assertEquals(60, result, 0);      //利用JUnit框架,调用assertEquals方法检查测试结果.60表示期望值,result为相加的结果,0代表结果是相等且正确
  9.         }
  10.     }
复制代码

3.3 JUNIT 3.X使用

基本流程(我们一般都是这么写)
使用junit进行测试,一般可以总结为如下4个步骤:
1) 写测试类并继承TestCase类;
2) 写测试方法testXXXX();
3) 写测试套件类将test case加入test suite;
4) 运行TestRunner进行测试;
测试演示:


4.小结

1)每个开发者都会执行某种类型的测试,以确保新写的代码能正常工作。使用自动单元测试的开发者能够根据需要重复执行这些测试,以确保代码在后面依然正常工作
2)手工编写单元测试并非难事,但是当测试变得更为复杂,编写和维护测试就变得比较困难了。
3)junit是一个单元测试框架,使得创建、运行、维护单元测试变得简单。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 994 天

    连续签到: 1 天

    [LV.10]测试总司令

    2#
    发表于 2019-4-24 13:42:12 | 只看该作者
    请问tearDown()方法是做什么用的? tearDown翻译成中文是什么意思啊?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-26 17:33 , Processed in 0.067308 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表