を模擬することができませんMockito:、私はmockitoから何かを(静的または非静的メソッド)模擬することができません静的&非静的メソッド
これらは私のクラスで、
Calculations.java
public class Calculations {
public void printZero() {
System.out.println("zero");
}
public static void printOne() {
System.out.println("one");
}
}
これは私のPostData.java
public class PostData {
public static Calculations calc = new Calculations();
public static void postTheData() {
calc.printZero();
Calculations.printOne();
}
}
ユニットテストクラス、 ですTestClass.java
public class TestClass {
@Test
public void addTest() {
Calculations lmock = mock(Calculations.class);
// can't have Calculations.calc.printZero() in when() :cause: argument passes to when() must be a mock object.
doNothing().when(lmock).printZero();
// cause: method when(void) is undefined for the type TestClass
// when(lmock.printZero()).doNothing();
// cause: argument passed to when() must be a mock object.
// doNothing().when(Calculations.printOne());
PostData.postTheData();
}
}
私の出力にコンパイルされた "0"と "1"という出力があり、理想的には無視されているはずです。
私はmockitoのためにcloud-mockito-all-1.10.19.jarを使用しています。 junitの最新のjarファイル。
私はここに何かが見つからないことを知っていますが、何が分かりません!あなたが私に答えることができれば、大きな助けになるでしょう。
あなたは実際には擬似 'Calculations'クラスを使用していません - あなたは' PostData'で静的なものを使用しています。 PowerMockitoを使用して静的メソッドをモックする必要があります。 –
* "mockitoから何か(静的メソッドまたは非静的メソッド)をモックすることができません" *したがって、動作しなくてもサポートされていないにもかかわらず、mockitoで静的メソッドをモックできますか?それにはPowerMockのような追加のものが必要です。 – Tom