方法应该没有参数

时间:2018-12-03 11:52:44

标签: android unit-testing junit

我的Android应用程序中有一个简单的单元测试代码,实现该代码会返回错误:

java.lang.Exception: Method constructorShouldSetTotal should have no parameters

这是我的代码:

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
import org.junit.runners.Parameterized.Parameters;
import static org.junit.Assert.assertEquals;

@RunWith(Parameterized.class)
public class UserListClassParametrizedTest {

    @Parameters
    public static Collection<Object[]> getTotal() {
        return Arrays.asList(new Object[][]{
                {20},
                {50}
        });
    }
    @Test
    public void constructorShouldSetTotal(int total) {
        UserList userList = new UserList(total);
        assertEquals(total, userList.getTotal());
    }
}

当我搜索一些答案时,使用的是无法导入的junitparams。 请为我提供解决方案。

2 个答案:

答案 0 :(得分:0)

If you're using JUnit please fix the order of the dependencies in your pom.xml ;)

答案 1 :(得分:0)

我的问题通过在测试方法中删除输入变量并在构造函数中进行设置来解决。

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

import java.util.Arrays;
import java.util.Collection;

import static org.junit.Assert.assertEquals;

@RunWith(Parameterized.class)
public class UserListClassParametrizedTest {

    @Parameterized.Parameters
    public static Collection<Object[]> getTotal() {
        return Arrays.asList(new Object[][]{
                {80},
                {30}
        });
    }

    private int total;

    public UserListClassParametrizedTest(int total) {
        this.total = total;
    }

    @Test
    public void constructorShouldSetTotal() {
        UserList userList = new UserList(total);
        assertEquals(total, userList.getTotal());
    }
}