我试图用 JUnit 参数做一个简单的例子,找到列表的最小值。我也在尝试使用不同的对象类型进行这项工作,但这样做时遇到了麻烦。这是我到目前为止所拥有的:
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> {
public List<? extends T> list;
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));
}
}
首先,我无法将类型 T 添加到列表中,但我不确定如何设置输入值的格式,以便它们可以处理任何对象类型。测试还抱怨对 min 的调用不是正确的输入类型。
min 方法的格式为:
public static <T extends Comparable<? super T>> T min (List<? extends T> list)
不确定如何处理未知类型的所有内容。
BIG阳
相关分类