zoukankan      html  css  js  c++  java
  • must return an Iterable of arrays.(junit4)

    java.lang.Exception: TestIterator.init() must return an Iterable of arrays.
        at org.junit.runners.Parameterized.parametersMethodReturnedWrongType(Parameterized.java:343)
        at org.junit.runners.Parameterized.createRunnersForParameters(Parameterized.java:326)
        at org.junit.runners.Parameterized.<init>(Parameterized.java:282)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29)
        at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)
        at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
        at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
        at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
        at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.<init>(JUnit4TestReference.java:33)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.<init>(JUnit4TestClassReference.java:25)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:48)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

    Error Cause:

    使用@Parameters修饰的方法,返回值应该为Collection<T[]>

    如果使用return Arrays.asList(parameters);则parameters应该为二维数组。
    第一维描述参数组数,即有测试多少次
    第二维描述参数个数,即执行一次测试,需要向构造函数传递多少个参数

    source code:
    org.junit.runners.Parameterized.java:

        private void createRunnersForParameters(Iterable<Object[]> allParameters,
                String namePattern) throws InitializationError, Exception {
            try {
                int i = 0;
                for (Object[] parametersOfSingleTest : allParameters) {
                    String name = nameFor(namePattern, i, parametersOfSingleTest);
                    TestClassRunnerForParameters runner = new TestClassRunnerForParameters(
                            getTestClass().getJavaClass(), parametersOfSingleTest,
                            name);
                    runners.add(runner);
                    ++i;
                }
            } catch (ClassCastException e) {
                throw parametersMethodReturnedWrongType();
            }
        }
  • 相关阅读:
    [ACM] POJ 3687 Labeling Balls (拓扑排序,反向生成端)
    xml和json选择奖
    android 如何分析java.lang.IllegalArgumentException: Cannot draw recycled bitmaps异常
    代码农民提高生产力
    &#39;Basic&#39; attribute type should not be a persistence entity/a container
    13 适配器
    密码学基础知识(四)分组密码
    PKCS #1 RSA Encryption Version 1.5 填充方式
    rsa加密--选择padding模式需要注意的问题。。。
    RSA PKCS1 填充方式
  • 原文地址:https://www.cnblogs.com/softidea/p/4256381.html
Copyright © 2011-2022 走看看