私はまだ JMockit を学んでおり、それを理解する助けが必要です。
スーパークラス メソッドを使用するクラスをテストしています。私のテストは、struts アクション コンテキストを使用してセッションを取得し、セッションからオブジェクトをプルする内部のコードが原因で、スーパークラス メソッドを使用しようとすると null ポインターを取得します。
保護されたメソッド内のStrutsセッションのものをバイパスしたいメソッド。
public class MyExtendingClass extends MySuperClass{
public void methodIamTesting(){///}
}
public abstract class MySuperClass{
//I want to mock this method
protected Object myProtectedSuperClassMethod(){
// struts action context code that returns an object//}
}
テストコード
@Test
public void testRunsAndDoesntPass() {
Mockit.setUpMock(MySuperClass.class, new MySuperClass(){
public Object myProtectedSuperClassMethod() {
return object;
}
});
// real class method invocation happens
assertEquals(expected, actual);
}
モックを持っていなかった場合と同じように、NullPointers を取得し続けます 次に何を試すかわからない。私が読んだすべてのドキュメントとコード サンプルは、setUpMock でスーパークラス メソッドを public として宣言するだけで、機能するはずです。
それが私がテストしているクラスであるため、クラス全体をモックすることはできません。