サブクラスによって拡張される抽象クラスが 1 つあり、スーパー クラスの保護されたデータ型で使用されるクラスをモックしたいとします。問題は、モックする必要があるクラスがデフォルトのデータ型であるため、パッケージの外部からアクセスできないことです。私の主張を明確にするために例を挙げましょう。ご協力いただきありがとうございます。
class protectedVariableClass{
public SomeObject someObject1;
public SomeObject someObject2;
}
public abstract class superClass {
protected protectedVariableClass protectedVariableClass;
..................
.................
}
public class subClass extends superClass {
protected boolean someMethod() {
protectedVariableClass.someObject1.printValue;
}
}
Jmockit を使用してテストしようとすると、スーパー クラスの保護された変数のモックを作成できません。
public class SubClassTest{
@Mocked
private protectedVariableClass mockedObject; // Cannot access the class with default data type outside package.
@Test
public void testClass {
subClass s1 = new subClass();
s1.someMethod();
}
}