以下のようなコードがあります:
Class A {
  public boolean myMethod(someargs) {
    MyQueryClass query = new MyQueryClass();
    Long id = query.getNextId();
    // some more code
  }
}
Class MyQueryClass     {
  ....
  public Long getNextId() {
    //lot of DB code, execute some DB query
    return id;
  }
}今、私はのテストを書いていA.myMethod(someargs)ます。実際のメソッドをスキップしてquery.getNextId()、代わりにスタブ値を返したいのですが。基本的に、私はあざけりたいですMyQueryClass。
だから私のテストケースでは、私は使用しました:
MyQueryClass query = PowerMockito.mock(MyQueryClass.class);
PowerMockito.whenNew(MyQueryClass.class).withNoArguments().thenReturn(query);
when(query.getNextId()).thenReturn(1000000L);
boolean b = A.getInstance().myMethod(args);
//asserts私はテストクラスの初めに使用@RunWith(PowerMockRunner.class)し@PrepareForTest({MyQueryClass.class})ました。
しかし、テストをデバッグするとき、それはまだクラスの実際のメソッドgetNextId()を呼び出していMyQueryClassます。
ここで何が欠けていますか?MockitoとPowerMockitoが初めてなので、誰でも手伝ってくれますか。