テストクラスを拡張せずにスーパークラスにメソッド(リフレクションを使用して)を挿入する方法はありますか? someMethod()
内のロジックをテストするには、getExternalData()
を置き換える必要があります。私はテストされたクラスを変更することはできません - 私はメソッドを注入することを考えていたので。Javaのテスト済みクラスにメソッドを挿入するには?
public class B extends A{
public String someMethod(){
String someString = super.getExternalData();
//logic to be tested - manipulating on someString
return someString;
}
}
public class A{
public String getExternalData(){
//some Logic that generates "externalData" string
return externalData;
}
}
とテスト:
public class CesTest{
@Test
public void someMethodTest()(
B instance = new B();
//...
//...
assertEquals("expectedData", instance.someMethod());
}
}
可能な複製:http://stackoverflow.com/questions/3467801/mockito-how-to-mock-only-the-call-of-a-method-of-the -superclass –