JUnit测试
1 Fixture 是指在执行一个或者多个测试方法时需要的一系列公共资源或者数据,例如测试环境,测试数据等等。
公共 Fixture 的设置也很简单,您只需要:
@Before @After
使用注解 org,junit.Before 修饰用于初始化 Fixture 的方法。
使用注解 org.junit.After 修饰用于注销 Fixture 的方法。
保证这两种方法都使用 public void 修饰,而且不能带有任何参数。
注意是每一个测试方法的执行都会触发对公共 Fixture 的设置,也就是说使用注解 Before 或者 After 修饰的公共 Fixture 设置方法是方法级别的。
所以后来引入了类级别的fixture
@BeforeClass @AfterClass
使用注解 org,junit.BeforeClass 修饰用于初始化 Fixture 的方法。
使用注解 org.junit.AfterClass 修饰用于注销 Fixture 的方法。
保证这两种方法都使用 public static void 修饰,而且不能带有任何参数。
2 异常以及时间测试expected 和 timeout
@Test(expected=UnsupportedDBVersionException.class)
public void unsupportedDBCheck(){
……
}
最长运行时间为
@Test(timeout=1000)
public void selfXMLReader(){
……
}
3 忽略测试方法 ignore
@ Ignore(“db is down”)
@Test(expected=UnsupportedDBVersionException.class)
public void unsupportedDBCheck(){
……
}
4 测试运行器--JUnit 中所有的测试方法都是由它负责执行的
JUnit 为单元测试提供了默认的测试运行器,但 JUnit 并没有限制您必须使用默认的运行器。
@RunWith(CustomTestRunner.class)
public class TestWordDealUtil {
……
}
5 测试套件
创建一个空类作为测试套件的入口。
使用注解 org.junit.runner.RunWith 和 org.junit.runners.Suite.SuiteClasses 修饰这个空类。
将 org.junit.runners.Suite 作为参数传入注解 RunWith,以提示 JUnit 为此类使用套件运行器执行。
将需要放入此测试套件的测试类组成数组作为注解 SuiteClasses 的参数。
保证这个空类使用 public 修饰,而且存在公开的不带有任何参数的构造函数。
package com.ai92.cooljunit;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
……
/**
* 批量测试工具包中测试类
* @author Ai92
*/
@RunWith(Suite.class)
@Suite.SuiteClasses({TestWordDealUtil.class})
public class RunAllUtilTestsSuite {
}
6 参数化测试
为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized。
为测试类声明几个变量,分别用于存放期望值和测试所用数据。
为测试类声明一个使用注解 org.junit.runners.Parameterized.Parameters 修饰的,返回值为 java.util.Collection 的公共静态方法,并在此方法中初始化所有需要测试的参数对。
为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值。
编写测试方法,使用定义的变量作为参数进行测试。
package com.ai92.cooljunit;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class TestWordDealUtilWithParam {
private String expected;
private String target;
@Parameters
public static Collection words(){
return Arrays.asList(new Object[][]{
{"employee_info", "employeeInfo"}, //测试一般的处理情况
{null, null}, //测试 null 时的处理情况
{"", ""},
{"employee_info", "EmployeeInfo"}, //测试当首字母大写时的情况
{"employee_info_a", "employeeInfoA"}, //测试当尾字母为大写时的情况
{"employee_a_info", "employeeAInfo"} //测试多个相连字母大写时的情况
});
}
/**
* 参数化测试必须的构造函数
* @param expected 期望的测试结果,对应参数集中的第一个参数
* @param target 测试数据,对应参数集中的第二个参数
*/
public TestWordDealUtilWithParam(String expected , String target){
this.expected = expected;
this.target = target;
}
分享到:
相关推荐
在实际开发中,使用Junit进行白盒测试可以发现代码中的隐藏错误,提升代码质量。例如,对数据库操作、算法逻辑、异常处理等进行详尽的测试,确保系统在各种情况下都能正常工作。 **总结** Junit4作为Java开发者的...
junit白盒测试Java是一种软件测试方法,它通过使用Java语言来实现白盒测试。在这个实验报告中,我们将使用JUnit框架来进行白盒测试,测试一个简单的赋税管理系统。 知识点1:白盒测试 白盒测试是一种软件测试方法...
3. **了解常用白盒测试工具**:如JTest、JUnit等,学会如何利用这些工具进行白盒测试。 #### 二、实验相关知识简介 **白盒测试**是一种软件测试方法,其测试依据是程序内部的结构和逻辑,而不是程序的功能。这种...
白盒测试,也被称为结构测试或逻辑驱动测试,是一种软件测试方法,其核心在于通过检查程序内部的逻辑结构和工作原理来设计测试用例。在白盒测试中,测试人员通常需要理解代码的实现细节,包括函数、流程控制、变量...
许多自动化工具如JUnit、Pex、Coverity等可以辅助进行白盒测试,帮助测试人员跟踪代码覆盖、发现潜在问题和提高测试效率。 5. **测试实施**: 在实际应用中,白盒测试通常与单元测试结合,先对代码模块进行逐个...
白盒测试,又称结构测试或逻辑驱动测试,是一种软件测试方法,它主要关注程序的内部逻辑和结构,而不是其外部表现。在白盒测试中,测试人员需要了解代码的内部工作原理,根据程序的控制流、数据流以及程序的状态转换...
### 白盒测试方案知识点详解 #### 一、白盒测试概述 **白盒测试**是一种测试策略,也称为**结构测试**或**逻辑驱动测试**。它关注于软件内部结构和逻辑路径,而非仅仅关注外部行为。这种方法要求测试者了解被测...
通过深入学习和实践这个"Junit4教程.doc"文档,开发者可以掌握如何有效地使用Junit4进行单元测试,提高代码的健壮性和可维护性。同时,了解单元测试的原理和最佳实践,也有助于提升编程能力,成为一名更专业的Java...
"软件单元测试——JUnit使用" 软件单元测试是软件开发过程中的一种测试方法,它是指对软件中的最小单元进行测试,以确保软件的可靠性和正确性。JUnit是一个流行的Java测试框架,广泛应用于软件单元测试中。 在本...
第三代白盒测试,以xUnit系列(JUnit、DUnit、CppUnit等)为代表,进一步强调测试与开发的紧密结合,实现了测试用例与代码的同步更新,适应了软件迭代开发的需求。而第四代白盒测试,即4GWM(4th Generation White-...
软件测试实验报告 题目一:用逻辑覆盖测试方法测试以下程序段 void DoWork (int x,int y,int z){ 1 int k=0, j=0; 2 if ( (x>3)&&(z) ) 3 { 4 k=x*y-1; 5 j=sqrt(k); 6 } 7 if((x==4)||(y>5)) 8 j=x*y+10; 9 j=j%3; ...
本实验主要关注的是基于JUnit4的测试技术,包括黑盒测试中的等价类划分和边界值分析,以及白盒测试中的路径覆盖方法,用于验证个人所得税计算的逻辑。下面将详细介绍这些测试策略及其在实践中的应用。 首先,我们来...
6. **自动化工具**:许多自动化工具,如JUnit、Selenium、Appium等,可用于实现白盒测试的自动化,以减少手动测试的工作量并提高测试覆盖率。 7. **集成测试**:在白盒测试中,还可能涉及集成测试,即将多个模块...
- **Java**:提供了多种用于白盒测试的工具,如JUnit。 - **Visual J+**:针对Java应用程序的开发工具,支持白盒测试。 #### 七、白盒测试的应用场景 - **单元测试**:对单个模块或函数进行测试。 - **集成测试**...
白盒测试,也被称为结构测试或逻辑驱动测试,是一种软件测试方法,其核心在于测试人员依据程序内部逻辑结构和编程代码来设计测试用例。在白盒测试中,测试者需要具备程序设计语言和系统架构的理解,以确保所有可能的...
白盒测试(也称结构测试)关注程序的内部逻辑,测试者需要了解代码实现细节,以确保每条路径、每个条件分支和循环都能正确执行。常见的白盒测试技术包括:语句覆盖、判定覆盖、条件覆盖、路径覆盖等。 黑盒测试则更...
**白盒测试**,也称为结构测试或逻辑驱动测试,是一种软件测试方法,它侧重于程序内部结构,而非用户界面或功能行为。测试者需要理解程序的内部逻辑,包括控制流程、数据流以及变量状态,以此来设计测试用例。在本...
学习白盒测试需要具备一定的编程基础和良好的编码习惯,同时熟悉不同编程语言下的主流单元测试框架,如JAVA的JUnit或TestNG,C/C++的C++Test或Visual Unit,.NET的Visual Studio或QualityTools,以及纯C的RTRT。...