参数化测试

来源:互联网 发布:云印网络印刷平台 编辑:程序博客网 时间:2024/06/05 11:12

运行下面程序时出现这个错误:Unrooted tests initializationError

import java.util.Arrays;import java.util.Collection;import static org.junit.Assert.*; // Notice the use of "static" hereimport org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;/** * JUnit Parameterized Test *  * @author mkyong *  */@RunWith(value = Parameterized.class)public class JunitTest6 {private int number;public JunitTest6(int number) {this.number = number;}@Beforepublic void setUp() throws Exception {}@Parameterized.Parameterspublic static Collection<Object[]> data() {Object[][] data = new Object[][] { { 1 }, { 2 }, { 3 }, { 4 } };return Arrays.asList(data);}@Testpublic void pushTest() {System.out.println("Parameterized Number is : " + number);}}

原文:http://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/

然后又找了一篇文章,下面只能运行带main()的类,按照Junit方式运行,还是同样的错误。

public class PrimeNumberChecker {public Boolean validate(final Integer primeNumber) {for (int i = 2; i < (primeNumber / 2); i++) {if (primeNumber % i == 0) {return false;}}return true;}}

import java.util.Arrays;import java.util.Collection;import org.junit.Test;import org.junit.Before;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;import org.junit.runner.RunWith;import static org.junit.Assert.assertEquals;@RunWith(Parameterized.class)public class PrimeNumberCheckerTest {private Integer inputNumber;private Boolean expectedResult;private PrimeNumberChecker primeNumberChecker;@Beforepublic void initialize() {primeNumberChecker = new PrimeNumberChecker();}// Each parameter should be placed as an argument here// Every time runner triggers, it will pass the arguments// from parameters we defined in primeNumbers() methodpublic PrimeNumberCheckerTest(Integer inputNumber, Boolean expectedResult) {this.inputNumber = inputNumber;this.expectedResult = expectedResult;}@Parameterized.Parameterspublic static Collection primeNumbers() {return Arrays.asList(new Object[][] { { 2, true }, { 6, false },{ 19, true }, { 22, false }, { 23, true } });}// This test will run 4 times since we have 5 parameters defined@Testpublic void testPrimeNumberChecker() {System.out.println("Parameterized Number is : " + inputNumber);assertEquals(expectedResult, primeNumberChecker.validate(inputNumber));}}

import org.junit.runner.JUnitCore;import org.junit.runner.Result;import org.junit.runner.notification.Failure;public class TestRunner {   public static void main(String[] args) {      Result result = JUnitCore.runClasses(PrimeNumberCheckerTest.class);      for (Failure failure : result.getFailures()) {         System.out.println(failure.toString());      }      System.out.println(result.wasSuccessful());   }}  

原文:http://www.tutorialspoint.com/junit/junit_parameterized_test.htm

源代码:http://pan.baidu.com/share/link?shareid=433062&uk=3878681452

其他几个测试的例子:http://188029.net/java/junit4.html

原创粉丝点击