モックファイルクラスとnullpointerexception
質問
新しいファイルを保存するためにディレクトリとして使用されるMockitoを使用して、ファイルモックオブジェクトを作成しています。
Folder folder = Mockito.mock(File.class);
File file = new Agent().createNewFile(folder, "fileName");
そして私のエージェントクラスの内部:
public File createNewFile(File folder, String filename){
return new File(folder, "testfile");
}
しかし、内部に新しいファイルを作成するときに、ファイルの初期化ブロックでnullpointerexceptionを取得しています createNewFile
方法:
java.lang.NullPointerException at java.io.File.<init>(File.java:308)
ファイルには空のコンストラクターがないために起こると思います。したがって、オブジェクトをock笑すると、内部状態がnullのままです。
私は間違ったアプローチをock笑していますか File folder
物体?私の目標は、新しいファイルを作成する前にいくつかの制約を確認することですが、ファイルシステム上の既存の実際のフォルダーに依存したくありません。
ありがとうございました。
解決
Fileクラスで内部的に呼び出されるため、FolderのgetPath()の動作を定義する必要があります。
あなたはそれをすることができます:
File folder = Mockito.mock(File.class);
when(folder.getPath()).thenReturn("C:\temp\");
File file = new Agent().createNewFile(folder, "fileName");
新しいファイルを実際に作成せず、新しいファイルのみを呼び出すまでにのみ機能します。
所属していません StackOverflow