测试类应该只有一个公共零参数构造函数

新手上路,请多包涵

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

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做一个测试方法,所以请任何人帮忙找到解决方案

原文由 Md Aslam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 712
1 个回答

JUnit 4 对比 5(木星)

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

原文由 s1m0nw1 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题