1

2つのクラス。親: B。子: AAmethod1() は B をオーバーライドします。

public class B {
    protected boolean method1(){...};
}

public class A extends B {
    protected boolean method1(){
        boolean val = super.method1();
        ... //very short segment of logic that doesn't affect val.
        return val;
    }
}

私のテストクラスの内部:

@Test
public void testA() {
    stub(method(B.class, "method1")).toReturn(true);
    assertTrue((Boolean)(Whitebox.invokeMethod(A.class, "method1")));
}

アサーションは失敗します (false を返します)。何か不足していますか?事前に助けてくれてありがとう。

4

1 に答える 1

0

テストするメソッドは非静的メソッドです。モックインスタンスのみの非静的メソッドをスタブできると思います。そのため、スタブ用にクラス オブジェクトを渡すことはできません。

于 2012-11-19T21:31:17.117 に答える