`

Junit4 Parameterized参数化和自动注解一起使用

 
阅读更多
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());  
    }  
}  


分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    junit参数化测试的使用方法

    1. **为准备使用参数化测试的测试类指定特殊的运行器** `org.junit.runners.Parameterized`。 2. **为测试类声明几个变量**,分别用于存放期望值和测试所用数据。 3. **为测试类声明一个带有参数的公共构造函数**,...

    Junit参数化测试源代码

    2. **创建参数化测试类**:创建一个继承自`@RunWith(Parameterized.class)`的类,这个注解告诉JUnit运行器这是一个参数化的测试类。 3. **定义公共静态方法**:声明一个或多个公共静态方法,这些方法将作为数据提供...

    JUnit-Parameterized-Test:参数化测试是使用不同的值一次又一次地执行相同的测试。 它可以帮助开发人员节省执行相同测试的时间,该测试仅在输入内容和预期结果上有所不同

    要使用JUnit进行参数化测试,首先需要导入`@RunWith(Parameterized.class)`和`@Parameters`这两个关键注解。`@RunWith(Parameterized.class)`告诉JUnit使用参数化运行器来执行测试,而`@Parameters`注解则用于提供...

    junit4教程(《Junit4初探》)

    2. 创建测试类:创建一个类,并使用`@RunWith(JUnit4.class)`注解标记为JUnit4测试类。 3. 编写测试方法:使用`@Test`注解标记测试方法,并在方法内编写断言。 4. 执行测试:通过IDE或者命令行工具运行测试,查看...

    junit4 jar完整包

    比如,`@RunWith(Parameterized.class)`可以实现参数化测试,将一组参数传递给测试方法,从而执行多次测试。 除了基本的测试功能,JUnit4还包含了一些扩展框架,如TestNG和Mockito,它们能帮助我们进行更复杂的测试...

    JUnit4JUnit4JUnit4(文档)

    JUnit4 提供了 `@Parameters` 注解和 `Parameterized` 测试运行器,可以进行参数化测试,即用不同的输入数据多次运行同一个测试方法。 5. **测试套件**: 通过 `@RunWith(Suite.class)` 和 `@Suite.SuiteClasses`...

    junit4测试jar包

    5. **参数化测试**:`@Parameterized`测试可以使用不同的参数多次运行同一个测试方法,这对于测试多种输入情况非常有用。 6. **超时测试**:`@Test(timeout = 1000)`可以设置测试方法的执行时间限制,超过设定时间...

    Junit4.zip

    此外,JUnit4支持使用`@RunWith`注解来指定运行器(Runner),比如`Parameterized`运行器用于执行参数化测试,`Suite`运行器可以组合多个测试类进行批量执行。 在实际项目中,我们通常会配合Maven或Gradle等构建...

    最新junit4,完整压缩文件,支持注解

    6. `@RunWith`: 这个注解允许你指定一个测试运行器(Runner),如`Parameterized`,可以进行参数化测试,或者`Suite`,可以组织多个测试类一起运行。 7. `@Category`: 通过定义自定义注解并配合此注解,你可以将...

    Junit4简单实用

    例如,`Parameterized` 测试运行器可以支持参数化的测试,使得同一个测试方法可以针对不同的输入值执行多次。 此外,JUnit 4 还引入了 `@BeforeClass` 和 `@AfterClass` 注解,它们分别表示在整个测试类开始前和...

    Junit4电子教程 api

    5. **参数化测试**:@Parameters注解配合Parameterized测试运行器,可以实现参数化的测试用例,同一测试方法可以使用不同的参数组合进行多次执行。 6. **假设(Assumptions)**:JUnit4提供了Assume类,允许在测试...

    Junit4测试总结

    JUnit4的`@Parameters`注解和`Parameterized`测试类可以实现参数化的测试,即用不同的输入数据多次运行同一个测试。 ```java @RunWith(Parameterized.class) public class ParameterizedTest { @Parameters ...

    在Eclipse中使用JUnit4进行单元测试

    为了更好地组织测试,可以使用`@RunWith`注解配合测试运行器(如`Parameterized`或`Suite`),实现参数化测试和组合测试。参数化测试允许为同一个测试方法提供多组输入数据,而`Suite`则能将多个测试类组合成一个...

    单元测试利器JUnit4

    JUnit4相较于早期版本引入了许多改进,如注解、参数化测试和测试套件等,使得测试代码更加简洁和灵活。 2. 注解(Annotations): JUnit4的核心特点是广泛使用注解,这使得测试类和方法的声明更清晰。例如: - `@...

    Junit4教程.pdf

    - JUnit4引入了参数化测试的概念,允许通过`@RunWith(Parameterized.class)`和`@Parameters`注解来为同一个测试方法提供多个输入参数,从而实现对多种情况的测试。 9. **注解的组合使用**: - 在JUnit4中,可以...

    junit4 jar包 Java单元测试框架绿色免费版.zip

    在实际项目中,开发者通常会配合使用`@RunWith`注解来选择测试运行器(Test Runner),比如`@RunWith(Suite.class)`或`@RunWith(Parameterized.class)`,以实现更复杂的测试场景,如组合测试或参数化测试。...

    JUnit多参数测试实例整合FizzBuzz

    1. **创建参数化测试类**:首先,我们需要创建一个测试类,并使用`@RunWith(Parameterized.class)`注解,声明这是一个参数化的测试类。 2. **定义公共静态方法来提供参数**:这个方法应该返回一个`Collection`对象,...

    junit4测试源码

    其次,JUnit4支持参数化测试,这意味着一个测试方法可以使用不同的参数多次执行。`@Parameters`注解用于提供参数数据,`@Parameterized.Parameters`方法返回一个包含参数的集合。 异常测试也是JUnit4的一个重要特性...

    单元测试JUnit4和DbUnit

    JUnit4是Java编程语言中最常用的单元测试框架,提供了丰富的断言方法和注解,使得编写和执行测试用例变得简单高效。DbUnit则是一个专门用于数据库单元测试的工具,它允许开发者在测试前后对数据库的状态进行操作,如...

    junit4 jar包以及源码

    5. **参数化测试**:使用@RunWith(Parameterized.class)和@Parameters方法注解,可以为测试方法提供多个参数组合,从而进行更全面的测试。 6. **规则**:JUnit4引入了Rule概念,允许用户自定义测试行为,比如资源...

Global site tag (gtag.js) - Google Analytics