1 回答
TA贡献1859条经验 获得超6个赞
这就是您可以运行测试的方法。我做了三个改变
MinTest<T>
现在是MinTest<T extends Comparable<? super T>>
这样T
匹配min
方法的类型修复了列表的类型:
List<T>
而不是List<? extends T>
初始化列表 (
list = new ArrayList<T>();
) 以便构造函数可以向列表添加元素。
这就是您的测试类的样子。
import static org.junit.Assert.*;
import java.util.*;
import org.junit.*;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith (Parameterized.class)
public class MinTest<T extends Comparable<? super T>> {
public List<T> list = new ArrayList<T>();
public T min;
public MinTest(T a, T b, T c) {
this.list.add(a);
this.list.add(b);
this.min = c;
}
@Parameters
public static Collection<Object[]> calcValues()
{
return Arrays.asList (new Object [][] {
// Last value indicates expected value
{1, 3, 1},
{"a", "b", "a"}
});
}
@Test
public void minTest() {
assertTrue("Single element list", min == Min.min(list));
}
}
顺便calcValues可以Object[][]直接返回一个数组:
@Parameters
public static Object [][] calcValues()
{
return new Object [][] {
// Last value indicates expected value
{1, 3, 1},
{"a", "b", "a"}
};
}
添加回答
举报