ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JUnit 测试

2020-02-22 20:03:19  阅读:241  来源: 互联网

标签:TestResult void JUnit public 测试 org junit


简介:

JUnit是一个java语言的单元测试框架。所谓单元测试是测试应用程序的功能是否能够按需要正常运行。单元测试是一个对单一实体(类或方法)的测试。多数Java的开发工具都集成了JUnit单元测试工具。

特点:

  • JUnit是一个开放的资源框架,用于编写和运行测试。
  • JUnit有效提高代码质量。
  • 提供注释来识别测试方法。
  • 提供断言来测试预期结果。
  • 提供测试运行来运行测试。

系统要求:

  • JUnit 是java的一个框架,所以我们需要安装JDK(JDK1.5或以上)。
  • JDK1.5及以上版本开始支持JUnit4,JUnit采用注解的方式实现测试代码的编写。

JUnit PAI:

JUnit 所有核心类都包含在 junit.framework 包下:

JUnit核心类
名称 功能
Assert 提供了一系列的编写测试的声明方法
TestCase 定义了运行多重测试的固定格式
TestResult TestResult 类收集所有执行测试案例的结果
TestSuite TestSuite 是测试的集合

1、Assert 类

org.junit.Assert :public class Assert extends java.lang.Object 提供了一系列的编写测试的声明方法。

org.junit.Assert
序号 方法 描述
1 void assertEquals(boolean expected, boolean actual) 检查两个变量或者等式是否平衡
2 void assertFalse(boolean condition)  检查条件是否为假
3 void assertTrue(boolean condition)  检查条件是否为真
4 void assertNotNull(Object object)  检查对象是否不为空
5 void assertNull(Object object) 检查对象是否为空
6 void fail()  在没有报告的情况下使测试不通过
7 void assertArrayEquals(expectedArray, resultArray) 检查两个数组是否相等

 

2、TestCase 类

org.junit.TestCaset :public abstract class TestCase extends Assert implements Test

org.junit.TestCase
序号 方法 描述
1 int countTestCases() 为被run(TestResult result) 执行的测试案例计数
2 TestResult createResult() 创建一个默认的 TestResult 对象
3 String getName() 获取 TestCase 的名称
4 TestResult run() 收集由TestResult 对象产生的结果
5 void run(TestResult result) 在 TestResult 中运行测试案例并收集结果
6 void setName(String name) 设置 TestCase 的名称
7 void setUp() 创建固定装置,例如,打开一个网络连接
8 void tearDown() 拆除固定装置,例如,关闭一个网络连接
9 String toString() 返回测试案例的一个字符串表示

3、TestResult 类

org.junit.TestResult :public class TestResult extends Object

org.junit.TestResult
序号 方法 描述
1 void addError(Test test, Throwable t) 在错误列表中加入一个错误
2 void addFailure(Test test, AssertionFailedError t) 在失败列表中加入一个失败
3 void endTest(Test test) 显示测试被编译的这个结果
4 int errorCount() 获取被检测出错误的数量
5 Enumeration errors() 返回错误的详细信息
6 int failureCount() 获取被检测出的失败的数量
7 void run(TestCase test) 运行 TestCase
8 int int runCount() 获得运行测试的数量
9 void startTest(Test test) 声明一个测试即将开始
10 void stop() 标明测试必须停止

 

4、TestSuite 类

org.junit.TestSuite :public class TestSuite extends Object implements Test

org.junit.TestSuite
序号 方法 描述
1 void addTest(Test test)  在套中加入测试。
2 void addTestSuite(Class<? extends TestCase> testClass) 将已经给定的类中的测试加到套中
3 int countTestCases() 对这个测试即将运行的测试案例进行计数
4 String getName() 返回套的名称。
5 void run(TestResult result) 在 TestResult 中运行测试并收集结果。
6 void setName(String name) 设置套的名称。
7 Test testAt(int index) 在给定的目录中返回测试
8 int testCount() 返回套中测试的数量。
9 static Test warning(String message) 返回会失败的测试并且记录警告信息。

注释

JUnit 为我们提供了测试相关注释。

JUnit常用注释
序号 注释 描述
1 @Test 应用在 public void 修饰的方法上,标记该方法为一个测试案例 。
2 @Before 应用在 public void  修饰的方法上,对每一个测试用例执行,在每一个方法执行之前执行。
3 @After 应用在 public void  修饰的方法上,对每一个测试用例执行,在每个方法之后执行。
4 @BeforeClass 在应用在 public void  修饰的方法上,标记该方法需要在类中所有方法前运行。
5 @AfterClass 在应用在 public void  修饰的方法上,它将会使方法在所有测试结束后执行(可以用来进行清理活动)。
6 @Ignore 该注释被应用后,方法将被忽略。

示例:

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;

public class JunitAnnotation {

   //execute before class
   @BeforeClass
   public static void beforeClass() {
      System.out.println("in before class");
   }

   //execute after class
   @AfterClass
   public static void  afterClass() {
      System.out.println("in after class");
   }

   //execute before test
   @Before
   public void before() {
      System.out.println("in before");
   }

   //execute after test
   @After
   public void after() {
      System.out.println("in after");
   }

   //test case
   @Test
   public void test() {
      System.out.println("in test");
   }

   //test case ignore and will not execute
   @Ignore
   public void ignoreTest() {
      System.out.println("in ignore test");
   }
}

结果:

检查运行结果

in before class
in before
in test
in after
in after class
一一八 发布了17 篇原创文章 · 获赞 15 · 访问量 3万+ 私信 关注

标签:TestResult,void,JUnit,public,测试,org,junit
来源: https://blog.csdn.net/weixin_41557632/article/details/104446702

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有