0
objOfClassB.realMethod()
メソッドが呼び出されるたびにClassA.mockMethod()
に電話したいと思います。mockito/Junitで実際のメソッドの代わりにモックメソッドを呼び出す方法
public class ClassA{
public static int mockMethod(String url, MySql sql){
int res=0
// do work
return ;
}
}
Definition of executeUpdate1()
class Veps{
protected synchronized int realMethod(String url, MySql sql){
----
-----
}
}
public class VepsTest {
public void setUp() throws Exception {
veps = mock(Veps.class);
when(objOfClassA.realMethod(any(String.class), any())).thenReturn(objOfClassB.mockMethod(any(String.class),any()));
}
}
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
Invalid use of argument matchers!
2 matchers expected, 4 recorded.
This exception may occur if matchers are combined with raw values:
//incorrect:
someMethod(anyObject(), "raw String");
When using matchers, all arguments have to be provided by matchers.
For example:
//correct:
someMethod(anyObject(), eq("String by matcher"));
お返事ありがとうございます。 私はany()を "??" IDEがコンパイルの警告を表示する "DBConnection型のメソッドmockExecuteQuery(String、MySql)は引数(String、String)には適用されません" モックメソッドを実装する必要はありません。私のテストが挿入され、引っ張られるデータに依存しているからです。私はデータベースをモックする必要がありますが、実際のデータベースの動作を保持してください。 –
@SharatChandra全くありません。しかし、私はまだあなたに尋ねます: "**なぜあなたはデータベースから結果を問い合わせる必要がありましたか?**" –
コードはデータベース上の特定の操作を行います。私のテストでは、実際のデータベースを使用せずに正しいデータがデータベースに書き込まれたかどうかを検証する必要があります。 –