Tib*_*riu 2 java junit multidimensional-array
我刚刚开始测试。
我试图测试的方法没有返回值(void),但它在自己的类中创建了一个静态二维数组(char[][]),所以根据我的理解,这是它的副作用。
这是一些模拟代码:
public class MyClass{
public static char[][] table;
public void setTable(int rows, int columns, int number){
board = new char[n][m];
// more code that alters the table in a specific way,
// depending on the 3rd parameter
}
Run Code Online (Sandbox Code Playgroud)
现在为了测试,我正在考虑做类似的事情:
public class SetTableTest{
@Test
public void test(){
MyClass test = new MyClass();
assertArrayEquals(**********, test.table);
}
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
我是否可以像我一样与静态变量进行比较(test.table),即。这实际上会返回已完成表格的“实例”吗?
我相当确定二维数组没有assertArrayEquals等效项,那么我该如何解决这个问题呢?
答案已经给出,但为了其他用户,我将添加另一种方法。
要比较两个数组 ,double[][] arr1, arr2可以使用Arrays.deepequals(arr1, arr2)which 返回true或false。该函数的签名是:
java.util.Arrays.deepEquals(Object[] a1, Object[] a2)
Run Code Online (Sandbox Code Playgroud)
对于单元测试,一行就足够了:
assertTrue(Arrays.deepEquals(arr1, arr2));
Run Code Online (Sandbox Code Playgroud)