私は Junit テストの初心者ですが、いくつかのコードをテストする必要があります。基本的なことはわかったと思いますが、まだ問題があり、インターネット上で何も見つかりませんでした。
テストしたいクラスは次のとおりです。
public static void methodToTest(Label l2, Label l3, User u) {
int first = MyDB.someMethod(u.anotherMethod()).size();
int second = MyDB.someOtherMethod(u).size();
if (first == 1) {
l2.setCaption("...");
}
...
}
システムに「first」と「second」の整数を作成させたくありません。代わりに、コードの最後の行が正しく機能するかどうかをテストできるように、それらを「1」にしたいだけです。
MyDB は、静的メソッド (someMethod() および someOtherMethod()) を持つパブリック クラスです。
メソッド methodToTest をテストしたい。このメソッドを parms で呼び出そうとし、最後に変更された params を予想されるものと比較しました。
私は Mockito と PowerMockito を使用しています。
これは私の試みの1つです:
@PrepareForTest({ClassToTest.class, MyDB.class })
@RunWith(PowerMockRunner.class)
public class Test extends PowerMockTestCase{
PowerMockito.mockStatic(MyDB.class);
PowerMockito.doReturn(1).when(MyDB.someMethod(u.anotherMethod()).size());
PowerMockito.doReturn(1).when(MyDB.someOtherMethod(u).size());
ClassToTest.methodToTest(l1, l2, u);
assertTrue(l1.equals(l3) && l2.equals(l4));
}
私が得る例外は、「when() に渡された引数はモックではありません!」です。
誰でも私を助けてくれることを願っています。この問題を解決するために何時間も費やしましたが、成功しませんでした。
ありがとうございました!!!