使用JUnit进行单元测试

发表于:2019-2-26 11:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:我的袜子都是洞    来源:掘金

#
JUnit
分享:
  简介
  JUnit 是一个 Java 编程语言的单元测试框架。JUnit 在测试驱动的开发方面有很重要的发展,是起源于 JUnit 的一个统称为 xUnit 的单元测试框架之一。
  好处
  可以书写一系列的测试方法,对项目所有的接口或者方法进行单元测试。
  启动后,自动化测试,并判断执行结果, 不需要人为的干预。
  只需要查看最后结果,就知道整个项目的方法接口是否通畅。
  每个单元测试用例相对独立,由Junit 启动,自动调用。不需要添加额外的调用语句。
  添加,删除,屏蔽测试方法,不影响其他的测试方法。 开源框架都对JUnit 有相应的支持。
  环境配置
  从官网www.junit.org 下载 JUnit 最新版本的压缩文件。
  笔者使用Maven(Java包管理工具)导入所需要的jar包:
    <!-- https://mvnrepository.com/artifact/junit/junit -->
  <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
  </dependency>
  基本用法
  测试代码和生成代码分开放置,Maven默认目录正好符号这个要求。
  被测试代码放在main下的java目录中,junit测试代码放在test下的java目录中,形成一一对应关系,测试代码使用Test开头命名。
  被测试MessageDemo代码:
  测试TestMessageDemo代码:
  基本的已经写好了,但是如何运行测试呢?还需要建一个运行测试的文件:
  好了,运行测试:
  看到true表明测试成功,那么我们来尝试一下测试不成功是什么情况。
  修改TestMessageDemo代码:
  重新运行测试:
  测试结果为false,并且指明了期望输出的结果No和实际输出的结果HelloWorld。
  JUnit 断言
  什么是断言?刚开始我也很困惑,后来搞了大半天才明白断言就是"判断"。
  Junit所有的断言都包含在 Assert 类中。
  这个类提供了很多有用的断言方法来编写测试用例。只有失败的断言才会被记录。Assert 类中的一些有用的方法列式如下:
  void assertEquals(boolean expected, boolean actual):检查两个变量或者等式是否平衡
  void assertTrue(boolean expected, boolean actual):检查条件为真
  void assertFalse(boolean condition):检查条件为假
  void assertNotNull(Object object):检查对象不为空
  void assertNull(Object object):检查对象为空
  void assertSame(boolean condition):assertSame() 方法检查两个相关对象是否指向同一个对象
  void assertNotSame(boolean condition):assertNotSame() 方法检查两个相关对象是否不指向同一个对象
  void assertArrayEquals(expectedArray, resultArray):assertArrayEquals() 方法检查两个数组是否相等
  JUnit 注解
  @Test:这个注释说明依附在 JUnit 的 public void 方法可以作为一个测试案例。
  @Before:有些测试在运行前需要创造几个相似的对象。在 public void 方法加该注释是因为该方法需要在 test 方法前运行。
  @After:如果你将外部资源在 Before 方法中分配,那么你需要在测试运行后释放他们。在 public void 方法加该注释是因为该方法需要在 test 方法后运行。
  @BeforeClass:在 public void 方法加该注释是因为该方法需要在类中所有方法前运行。
  @AfterClass:它将会使方法在所有测试结束后执行。这个可以用来进行清理活动。
  @Ignore:这个注释是用来忽略有关不需要执行的测试的。
  JUnit 加注解执行过程
  beforeClass(): 方法首先执行,并且只执行一次。
  afterClass():方法最后执行,并且只执行一次。
  before():方法针对每一个测试用例执行,但是是在执行测试用例之前。
  after():方法针对每一个测试用例执行,但是是在执行测试用例之后。
  在 before() 方法和 after() 方法之间,执行每一个测试用例。
  JUnit 执行测试
  测试用例是使用 JUnitCore 类来执行的。JUnitCore 是运行测试的外观类。要从命令行运行测试,可以运行java org.junit.runner.JUnitCore。对于只有一次的测试运行,可以使用静态方法 runClasses(Class[])。
  JUnit 套件测试
  测试套件意味着捆绑几个单元测试用例并且一起执行他们。在 JUnit 中,@RunWith和@Suite注释用来运行套件测试。
  被测试MessageDemo代码:
  新建两个测试类,用来展示套件测试:
  测试TestMessageDemo代码:

       上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
 
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号