java - 测试类应该只有一个公共(public)零参数构造函数

标签 java junit parameters

我写了一个测试类,如下所示

public class MyParameterizedClassTest extends BaseRepositoryTest {
    private int multiplierA;
    private int multiplierB;
    public MyParameterizedClassTest(int multiplierA) {
        this.multiplierA = multiplierA;

    }   

    @Parameters
    public static Collection<Object[]> data() { 
        Object[][] data = new Object[][] { { 1 }, { 5 }, { 121 } };
        return Arrays.asList(data);
    }

    @Test
    public void testMultiplyException() {
        assertEquals("Result", multiplierA * multiplierA,multiply(multiplierA));
    }

    public int multiply(int a){
        return a*a;
    }
 }

然后是我的 BaseRepositoryTest 类

@RunWith (Parameterized.class)
@ContextConfiguration(locations = {"classpath:applicationContext.xml"})
public abstract class BaseRepositoryTest extends
    AbstractJUnit4SpringContextTests {



    @Inject
    SessionFactory sessionFactory;

    private Transaction transaction;

    public Session getSession() {
        Session session;
        try {
            session = sessionFactory.getCurrentSession();
        } catch (SessionException se) {
            session = sessionFactory.openSession();
        }
        return session;
    }

    @Before
    public void setUp() throws Exception {
        transaction = getSession().beginTransaction();
    }

    @After
    public void tearDown() throws Exception {
        if (transaction != null) {
            transaction.rollback();
        }
        getSession().close();
    }

    @Before
    public void baseSetUp() {
        MockitoAnnotations.initMocks(this);
    }
}

当我运行我的测试类时,它显示为,

 Test class should have exactly one public zero-argument constructor:at 
 org.junit.runners.BlockJUnit4ClassRunner.validateZeroArgConstructor

我想用@parameters做一个测试方法,所以请任何人帮忙找到解决方案

最佳答案

JUnit 4 与 5(木星)

我在导入错误的 Test 类时遇到了这个问题。当构造函数使用 JUnit 5 功能时,我导入了旧的 org.junit.Test 而不是 org.junit.jupiter.api.Test

关于java - 测试类应该只有一个公共(public)零参数构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26672229/

相关文章:

Java多线程示例-对象是否共享

java - Portlet 与 JSF 有何关系?

java - 使用 Junit4 以编程方式构建 Junit 递归套件

java - 模拟其属性在测试类构造函数中使用的依赖项

java - 如何使用 archunit 验证方法注释是否使用具有特定值的属性

c - 为什么没有参数的函数(与实际函数定义相比)可以编译?

java - 您可以从 Java 调用已编译的 JRuby 类吗?

Java 竞赛小程序不工作

string - 绑定(bind)到参数时,如何防止字符串参数从 null 更改为空?

ios - 正确使用 NSGetExecutablePath