Punit实例学习
时间:2010-09-28 来源:sinkingboat
5.程序举例
现有一个简单的类SampleUtil。
public class SampleUtil {
private static Random _random = new Random();
//声明一个随机长度的数组,并循环消费时间
public static void consumeMemory(int length) {
byte[] data = new byte[length];
for(int i = 0, j = 0; i < data.length; ++i) {
++j;
}
}
//提供一个睡眠时间,进行睡眠
public static void consumeTime(int time) {
ThreadUtil.sleepIgnoreInterruption(time);
}
public static void doSomething() {
consumeTime(Math.abs(_random.nextInt()) % 500);
consumeMemory(Math.abs(_random.nextInt()) % 100000);
}
}
这是一个junit的测试类,提供了三个测试方法TestA,TestB,TestC,TestB和TestC的代码是相同的。
public class SimpleTestClass {
public void setUp() {
SampleUtil.doSomething();
}
public void tearDown() {
SampleUtil.doSomething();
}
public void testA() {
System.out.println("testA");
SampleUtil.doSomething();
}
public void testB() {
SampleUtil.doSomething();
}
public void testC() {
SampleUtil.doSomething();
}
}
6.punit的单线程测试
SoloRunner类是一个测试运行嚣,这个功能和junit是一致的。
import org.punit.runner.SoloRunner;
public class SimpleTestClass {
public static void main(String[] args) {
new SoloRunner().run(SimpleTestClass.class);
}
public void testA() {
SampleUtil.doSomething();
}
public void testB() {
SampleUtil.doSomething();
}
public void testC() {
SampleUtil.doSomething();
}
}
运行结果
[solo] Starting samples.SimpleTestClass
samples.SimpleTestClass
testA() - [369.527643ms]
testB() - [177.475674ms]
testC() - [31.667765ms]
total: 3, failures:0 (GREEN) - 649.119171ms
详见:SimpleTestClass.java
6.多线程测试
现有一个简单的类SampleUtil。
public class SampleUtil {
private static Random _random = new Random();
//声明一个随机长度的数组,并循环消费时间
public static void consumeMemory(int length) {
byte[] data = new byte[length];
for(int i = 0, j = 0; i < data.length; ++i) {
++j;
}
}
//提供一个睡眠时间,进行睡眠
public static void consumeTime(int time) {
ThreadUtil.sleepIgnoreInterruption(time);
}
public static void doSomething() {
consumeTime(Math.abs(_random.nextInt()) % 500);
consumeMemory(Math.abs(_random.nextInt()) % 100000);
}
}
这是一个junit的测试类,提供了三个测试方法TestA,TestB,TestC,TestB和TestC的代码是相同的。
public class SimpleTestClass {
public void setUp() {
SampleUtil.doSomething();
}
public void tearDown() {
SampleUtil.doSomething();
}
public void testA() {
System.out.println("testA");
SampleUtil.doSomething();
}
public void testB() {
SampleUtil.doSomething();
}
public void testC() {
SampleUtil.doSomething();
}
}
6.punit的单线程测试
SoloRunner类是一个测试运行嚣,这个功能和junit是一致的。
import org.punit.runner.SoloRunner;
public class SimpleTestClass {
public static void main(String[] args) {
new SoloRunner().run(SimpleTestClass.class);
}
public void testA() {
SampleUtil.doSomething();
}
public void testB() {
SampleUtil.doSomething();
}
public void testC() {
SampleUtil.doSomething();
}
}
运行结果
[solo] Starting samples.SimpleTestClass
samples.SimpleTestClass
testA() - [369.527643ms]
testB() - [177.475674ms]
testC() - [31.667765ms]
total: 3, failures:0 (GREEN) - 649.119171ms
详见:SimpleTestClass.java
6.多线程测试
相关阅读 更多 +