1.@BeforeClass 和 @AfterClass 对于那些比较“昂贵”的资源的分配或者释放来说是很有效的,因为
他们只会在类中被执行一次。相比之下对于那些需要在每次运行之前都要初始化或者在运行之后都需要被清理的资源来说使用@Before和@After同样是一个比较明智的选择。
2.@BeforeClass 和 @AfterClass必须声明为public static,而@Before和@After必须声明为public 并且非static。
3.Parameterized参数化和自动注解一起使用例子
注:TestContextManager这个类的效果与@RunWith(SpringJUnit4ClassRunner.class)一样自动注解。
JUnit参数化测试的五个步骤:
(1)为准备使用参数化测试的测试类指定特殊的运行器 org.junit.runners.Parameterized。
(2)为测试类
声明几个变量,分别用于存放期望值和测试所用数据。
(3)为测试类声明一个
带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值。
(4)为测试类声明一个使用注解 org.junit.runners.Parameterized.
Parameters 修饰的,返回值为 java.util.Collection 的公共静态方法,并在此方法中初始化所有需要测试的参数对。
(5)编写
测试方法,使用定义的变量作为参数进行测试。
import java.util.Arrays;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.TestContextManager;
//(1)步骤一:测试类指定特殊的运行器org.junit.runners.Parameterized
@RunWith(Parameterized.class)
@ContextConfiguration(locations = { "classpath:applicationContext-*.xml" })
public class SpringJunit4Parameterized{
@Autowired
private XXService xxService ;
private TestContextManager testContextManager ;
//每次运行都会执行 与 @BeforeClass的区别
@Before
public void setUp(){
//自动注解与@RunWith(SpringJUnit4ClassRunner.class) 效果一样
testContextManager = new TestContextManager(getClass()) ;
try {
testContextManager.prepareTestInstance(this);
} catch (Exception e) {
e.printStackTrace();
}
}
// (2)步骤二:为测试类声明变量,分别用于存放期望值和测试所用数据。此处我只放了测试所有数据,没放期望值。
private String eventid;
// (3)步骤三:为测试类声明一个带有参数的公共构造函数,并在其中为第二个环节中声明的几个变量赋值。
public SpringJunit4Parameterized(String eventid) throws Exception{
this.eventid = eventid;
}
// (4)步骤四:为测试类声明一个使用注解 org.junit.runners.Parameterized.Parameters 修饰的,返回值为
// java.util.Collection 的公共静态方法,并在此方法中初始化所有需要测试的参数对。
@SuppressWarnings("all")
@Parameters
public static Collection eventidData() {
return Arrays.asList(new Object[][]{
{"BBB1"}
});
}
// (5)步骤五:编写测试方法,使用定义的变量作为参数进行测试。
@Test
public void testFindByName() {
System.out.println("**************");
XXBO xx= this.xxService.getxxByID(eventid);
System.out.println(xx.getEventid());
}
}
分享到:
相关推荐
1. **为准备使用参数化测试的测试类指定特殊的运行器** `org.junit.runners.Parameterized`。 2. **为测试类声明几个变量**,分别用于存放期望值和测试所用数据。 3. **为测试类声明一个带有参数的公共构造函数**,...
2. **创建参数化测试类**:创建一个继承自`@RunWith(Parameterized.class)`的类,这个注解告诉JUnit运行器这是一个参数化的测试类。 3. **定义公共静态方法**:声明一个或多个公共静态方法,这些方法将作为数据提供...
要使用JUnit进行参数化测试,首先需要导入`@RunWith(Parameterized.class)`和`@Parameters`这两个关键注解。`@RunWith(Parameterized.class)`告诉JUnit使用参数化运行器来执行测试,而`@Parameters`注解则用于提供...
2. 创建测试类:创建一个类,并使用`@RunWith(JUnit4.class)`注解标记为JUnit4测试类。 3. 编写测试方法:使用`@Test`注解标记测试方法,并在方法内编写断言。 4. 执行测试:通过IDE或者命令行工具运行测试,查看...
比如,`@RunWith(Parameterized.class)`可以实现参数化测试,将一组参数传递给测试方法,从而执行多次测试。 除了基本的测试功能,JUnit4还包含了一些扩展框架,如TestNG和Mockito,它们能帮助我们进行更复杂的测试...
JUnit4 提供了 `@Parameters` 注解和 `Parameterized` 测试运行器,可以进行参数化测试,即用不同的输入数据多次运行同一个测试方法。 5. **测试套件**: 通过 `@RunWith(Suite.class)` 和 `@Suite.SuiteClasses`...
5. **参数化测试**:`@Parameterized`测试可以使用不同的参数多次运行同一个测试方法,这对于测试多种输入情况非常有用。 6. **超时测试**:`@Test(timeout = 1000)`可以设置测试方法的执行时间限制,超过设定时间...
此外,JUnit4支持使用`@RunWith`注解来指定运行器(Runner),比如`Parameterized`运行器用于执行参数化测试,`Suite`运行器可以组合多个测试类进行批量执行。 在实际项目中,我们通常会配合Maven或Gradle等构建...
6. `@RunWith`: 这个注解允许你指定一个测试运行器(Runner),如`Parameterized`,可以进行参数化测试,或者`Suite`,可以组织多个测试类一起运行。 7. `@Category`: 通过定义自定义注解并配合此注解,你可以将...
例如,`Parameterized` 测试运行器可以支持参数化的测试,使得同一个测试方法可以针对不同的输入值执行多次。 此外,JUnit 4 还引入了 `@BeforeClass` 和 `@AfterClass` 注解,它们分别表示在整个测试类开始前和...
5. **参数化测试**:@Parameters注解配合Parameterized测试运行器,可以实现参数化的测试用例,同一测试方法可以使用不同的参数组合进行多次执行。 6. **假设(Assumptions)**:JUnit4提供了Assume类,允许在测试...
JUnit4的`@Parameters`注解和`Parameterized`测试类可以实现参数化的测试,即用不同的输入数据多次运行同一个测试。 ```java @RunWith(Parameterized.class) public class ParameterizedTest { @Parameters ...
为了更好地组织测试,可以使用`@RunWith`注解配合测试运行器(如`Parameterized`或`Suite`),实现参数化测试和组合测试。参数化测试允许为同一个测试方法提供多组输入数据,而`Suite`则能将多个测试类组合成一个...
JUnit4相较于早期版本引入了许多改进,如注解、参数化测试和测试套件等,使得测试代码更加简洁和灵活。 2. 注解(Annotations): JUnit4的核心特点是广泛使用注解,这使得测试类和方法的声明更清晰。例如: - `@...
- JUnit4引入了参数化测试的概念,允许通过`@RunWith(Parameterized.class)`和`@Parameters`注解来为同一个测试方法提供多个输入参数,从而实现对多种情况的测试。 9. **注解的组合使用**: - 在JUnit4中,可以...
在实际项目中,开发者通常会配合使用`@RunWith`注解来选择测试运行器(Test Runner),比如`@RunWith(Suite.class)`或`@RunWith(Parameterized.class)`,以实现更复杂的测试场景,如组合测试或参数化测试。...
1. **创建参数化测试类**:首先,我们需要创建一个测试类,并使用`@RunWith(Parameterized.class)`注解,声明这是一个参数化的测试类。 2. **定义公共静态方法来提供参数**:这个方法应该返回一个`Collection`对象,...
其次,JUnit4支持参数化测试,这意味着一个测试方法可以使用不同的参数多次执行。`@Parameters`注解用于提供参数数据,`@Parameterized.Parameters`方法返回一个包含参数的集合。 异常测试也是JUnit4的一个重要特性...
JUnit4是Java编程语言中最常用的单元测试框架,提供了丰富的断言方法和注解,使得编写和执行测试用例变得简单高效。DbUnit则是一个专门用于数据库单元测试的工具,它允许开发者在测试前后对数据库的状态进行操作,如...
5. **参数化测试**:使用@RunWith(Parameterized.class)和@Parameters方法注解,可以为测试方法提供多个参数组合,从而进行更全面的测试。 6. **规则**:JUnit4引入了Rule概念,允许用户自定义测试行为,比如资源...