- 浏览: 959058 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
先看一个例子
package test;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(value = Parameterized.class)
public class ParameterTest {
private double expected;
private double valueOne;
private double valueTwo;
public ParameterTest(double expected, double valueOne, double valueTwo) {
this.expected = expected;
this.valueOne = valueOne;
this.valueTwo = valueTwo;
}
@Parameters
public static Collection<Integer[]> getTestParameters() {
return Arrays.asList(new Integer[][] { { 2, 1, 1 }, // expected,
// valueOne,
// valueTwo
{ 3, 2, 1 }, // expected, valueOne, valueTwo
{ 4, 3, 1 }, // expected, valueOne, valueTwo
});
}
@Test
public void sum() {
Calculator calc = new Calculator();
Assert.assertEquals(expected, calc.add(valueOne, valueTwo), 0);
}
}
通过在Calculator calc = new Calculator();设置断点后调试发现
sum被中断三次
每次this都指向不同的地址,可以发现每次test都会初始化test的环境。
在构造函数中设置断点,发现也中断三次,每次中断下来后可以看到的构造调用的时候的参数也是不一样的。每次的值都是getTestParameters中的三个值中的一个。当然getTestParameters只被调用一次。
可以确定每次构造之前,初始化了参数。
这里使用的runner是Parameterized 。要使用这个runner必须在test的class上面带有@RunWith,并且value=Parameterized的class。
其中必须有一个public的静态方法,它拥有@Parameters注解,来表示这个方法是初始化参数的。返回类型必须是Collection的无参方法。集合中的每个元素必须是数组,数组的长度必须相同。数组的参数个数必须和唯一的构造函数相同。如果public的构造函数有多个,就会抛出assertion
error
package test;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(value = Parameterized.class)
public class ParameterTest {
private double expected;
private double valueOne;
private double valueTwo;
public ParameterTest(double expected, double valueOne, double valueTwo) {
this.expected = expected;
this.valueOne = valueOne;
this.valueTwo = valueTwo;
}
@Parameters
public static Collection<Integer[]> getTestParameters() {
return Arrays.asList(new Integer[][] { { 2, 1, 1 }, // expected,
// valueOne,
// valueTwo
{ 3, 2, 1 }, // expected, valueOne, valueTwo
{ 4, 3, 1 }, // expected, valueOne, valueTwo
});
}
@Test
public void sum() {
Calculator calc = new Calculator();
Assert.assertEquals(expected, calc.add(valueOne, valueTwo), 0);
}
}
通过在Calculator calc = new Calculator();设置断点后调试发现
sum被中断三次
每次this都指向不同的地址,可以发现每次test都会初始化test的环境。
在构造函数中设置断点,发现也中断三次,每次中断下来后可以看到的构造调用的时候的参数也是不一样的。每次的值都是getTestParameters中的三个值中的一个。当然getTestParameters只被调用一次。
可以确定每次构造之前,初始化了参数。
这里使用的runner是Parameterized 。要使用这个runner必须在test的class上面带有@RunWith,并且value=Parameterized的class。
其中必须有一个public的静态方法,它拥有@Parameters注解,来表示这个方法是初始化参数的。返回类型必须是Collection的无参方法。集合中的每个元素必须是数组,数组的长度必须相同。数组的参数个数必须和唯一的构造函数相同。如果public的构造函数有多个,就会抛出assertion
error
发表评论
-
DEBUG -- CLOSE BY CLIENT STACK TRACE
2011-10-20 10:28 27638在单元测试测试环境下主要参数两个错误信息: 1.java.la ... -
奇怪的乱码
2011-10-20 00:14 1374通过ant运行build,然后启动测试。测试的时候有log4j ... -
mock对象测试
2011-10-17 22:48 1316package mock; public class Acc ... -
依赖外部资源时解决方案-----存根
2011-10-17 22:08 1458package stubbing; import java. ... -
cobertura做测试覆盖率 ant的配置
2011-09-25 23:05 7478cobertura原理大致如下: 首先修改我们编译后的clas ... -
软件测试的种类
2011-09-18 17:58 1154acceptance test 验收测试 你的程序满足了客户的 ... -
hamcrest
2011-09-18 16:51 1209在一个测试用例中,有时候不得不存在多个断言,比如 @Test ... -
@Ignore 指定跳过测试用例
2011-09-18 16:06 1750在3.x版本中,如果我们不想启动某些测试,需要将方法名更改为非 ... -
@Test
2011-09-17 23:27 8101@Test注解是测试的基础,它提供了其他作用 1.指定将会抛 ... -
测试规范
2011-09-16 00:27 1008测试方法名一般有两种 testxxxx xxxx是要测试的域 ... -
@Before, @BeforeClass, @After, @AfterClass
2011-09-15 23:30 7819@Before, @BeforeClass, @After, ... -
Suite runner
2011-09-14 23:29 1147套件运行器 它可以运行多个测试。 package test; ... -
junit的核心对象
2011-09-12 21:52 1182概念责任Assert不同条件的断言。如果成功,无什么特殊的信息 ... -
基础知识
2011-09-12 20:01 932注解 @Before, @BeforeClass, @Afte ... -
junit网址
2011-08-31 16:29 1018http://junit.sourceforge.net/ h ...
相关推荐
import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class CalculatorTest { private int param; private int paramm; private int result; @Parameters public ...
import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class ParameterizedAddOperationTest { private int input1; private int input2; private int expectedResult; ...
5. 运行器(Runner):JUnit 4.0支持自定义运行器,如`BlockJUnit4ClassRunner`是默认的运行器,还有`Parameterized`用于参数化测试,`Suite`用于测试套件。 三、实战应用 1. 创建测试类:创建一个名为`MyTest`的...
在这个例子中,`@Parameterized.Parameters`注解的`data()`方法返回了一个数据集合,JUnit会为每组数据运行一次`testWithVariable`测试方法。 通过这种方式,我们可以将变量解析到Map,然后利用JUnit的参数化测试...
import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class ParameterizedTest { private int input; private int expectedOutput; public ParameterizedTest(int ...
JUnit4的`@Parameters`注解和`Parameterized`测试类可以实现参数化的测试,即用不同的输入数据多次运行同一个测试。 ```java @RunWith(Parameterized.class) public class ParameterizedTest { @Parameters ...
5. `@RunWith`: 指定运行器(Runner),可以自定义测试行为。比如`@RunWith(Parameterized.class)`用于参数化测试。 三、异常测试 Junit4提供了断言方法来检测预期的异常。例如,`assertThrows()`可以捕获并验证...
12. **JVM参数**:通过`junit.runner.Version`类可以获取JUnit的版本信息,而`junitparams.Parameters.isRunningInContinuousIntegration()`则可以检测是否在持续集成环境中运行。 总的来说,JUnit 4.11作为一款...
`@Parameters`注解用于提供参数集,`@Parameterized.Parameters`方法返回这些参数。 为了增强测试的灵活性,JUnit 4.12还引入了`Assume`类,它允许我们在测试开始前进行预条件检查。如果假设不成立,测试会被跳过而...
为了实现参数化的测试,可以使用`@RunWith(Parameterized.class)`和`@Parameters`注解来定义测试方法和参数源。 ```java import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org....
5. **参数化测试**:`@Parameters`和`@ParameterizedTest`注解支持根据一组参数运行相同的测试逻辑,用于验证不同输入值下的行为。 6. **超时测试**:`@Test(timeout = 1000)`限制测试方法的执行时间,防止无尽的...
这通过`@Parameters`和`@Parameterized`注解实现。 6. **超时测试**:可以设定测试方法的执行时间限制,如果超过这个时间,测试就会失败。通过`@Test(timeout =毫秒数)`实现。 7. **假设(Assumptions)**:`...
import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.Collection; @RunWith(Parameterized.class) public class ParameterizedTest { private int input1; private ...
此外,`@RunWith`注解允许我们使用自定义的运行器(Runner)。这在进行更复杂测试场景,如参数化测试、模拟对象测试等时非常有用。例如,`Parameterized`运行器可用于测试多种输入参数的情况: ```java @RunWith...
import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.Collection; @RunWith(Parameterized.class) public class ParameterizedTest { private final String currency...
import org.junit.runners.Parameterized.Parameters; import java.util.Arrays; import java.util.List; @RunWith(Parameterized.class) public class ParameterizedTest { private int input1; private int ...
3. **参数化测试**:`@Parameters`注解和`@Parameterized`测试类可以实现参数化的测试,即同一个测试方法可以针对多组输入数据进行执行。 4. **异常断言**:JUnit 4提供了`assertThrows()`方法,可以直接断言一个...
JUnit提供了`@RunWith`注解,允许我们使用特定的运行器(Runner)来控制测试执行。例如,`Parameterized`运行器可以让我们进行参数化测试: ```java @RunWith(Parameterized.class) public class ParameterizedTest...
9. **参数化测试**:使用`@Parameters`注解和`Parameterized` runner,可以创建参数化的测试用例,以测试不同输入值下的行为。 10. **Mocking and Stubbing**:虽然JUnit4自身不包含模拟(mocking)和桩(stubbing...
4. **参数化测试**:`@Parameters`和`Parameterized`类使得测试可以使用不同的参数集进行多次运行。 5. **假设(Assumptions)**:JUnit 4引入了`Assume`类,允许在测试开始前设定条件,如果条件不满足,测试会被跳...