【问题标题】:Using parameterized JUnit tests with the play! framework在游戏中使用参数化的 JUnit 测试!框架
【发布时间】:2013-03-13 10:15:09
【问题描述】:

我想在剧本中使用参数化的 JUnit 测试!框架 (1.2.5) 应用程序。

这是我非常简单的测试示例:

import java.util.Arrays;
import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import play.test.FunctionalTest;

@RunWith(Parameterized.class)
public class ParameterizedExampleTest extends FunctionalTest {

    private int i;

    @Parameters
    public static List<Object[]> parameters() {
        return Arrays.asList(new Object[][] {{1},{2},{3}});
    }

    public ParameterizedExampleTest(int i) {
        this.i = i;
    }

    @Test
    public void someTest() {
        System.out.println("i is " + i);
    }
}

当我运行测试时,我收到一个IllegalArgumentException 告诉我“测试类只能有一个构造函数”。我完全同意FunctionalTest extends BaseTest 有一个@RunWith(PlayJUnitRunner.class) 注释和PlayJUnitRunner 有一个构造函数。

欢迎任何帮助!

【问题讨论】:

    标签: junit playframework parameterized


    【解决方案1】:

    我找到了一个不错的解决方案:

    import java.util.Arrays;
    import java.util.List;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.junit.runners.Parameterized;
    import org.junit.runners.Parameterized.Parameter;
    import org.junit.runners.Parameterized.Parameters;
    
    import play.test.FunctionalTest;
    
    @RunWith(Parameterized.class)
    public class ParameterizedExampleTest extends FunctionalTest {
    
        @Parameter(0)
        public int i;
    
        @Parameters
        public static List<Object[]> parameters() {
            return Arrays.asList(new Object[][] {{1},{2},{3}});
        }
    
        @Test
        public void someTest() {
            System.out.println("i is " + i);
        }
    }
    

    您必须使用@Parameter(...) Annotation 和参数数组中的参数编号来标记参数。不需要构造函数,因此它可以顺利运行。

    缺点:您将需要 JUnit 4.11,因为该功能未在 4.10 中实现,而 play (1.2.5) 附带。

    【讨论】:

    • 太棒了!刚遇到同样的问题,你救了我的命;)
    猜你喜欢
    • 2023-03-13
    • 1970-01-01
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多