0

java.i で次の関数のテストを書きたいのですが、配列の作成をモックしたいと考えています。

public File[] myFunc()
{  

 File[] array = new File[2];

 return array;

}

私はpowermock Javaを使用して次のテストを書きました:

@Test

public void test1()
{

 File f1 = createMock(File.class);

 File[] files = new File[]{f1};

 expectNew(File[].class).andReturn(fArray);

 replayAll();

 File[] res = myclass.myFunc();

 verifyAll();

assertEquals(f1, res[0]);

}

次のメッセージで例外をスローします。 org.powermock.reflect.exceptions.ConstructorNotFoundException: No constructor found in class java.io.file with parameter types:<none>

4

2 に答える 2

0

例外はすでにそれを示しています。コンストラクター引数を指定せずに File インスタンスを作成しようとしましたが、クラス java.io.File のパラメーターを持たないコンストラクターはありません。例外のスタック トレースは、試行のコードの場所を示します。だと思いますFile f1 = createMock(File.class);。代替手段については、powermock のドキュメントを確認してください。

于 2013-08-26T12:08:50.113 に答える
0

この配列には値がないため、この配列の作成を嘲笑しても意味がありません。より簡潔なテストは次のようになります。

@Test
public void test1() {
    File[] result = myclass.myFunc();
    assertEquals(2, result.length);
    for (File f : result) {
        assertNull(f);
    }
}
于 2013-08-26T15:10:49.327 に答える