SourceProject と TestProject の 2 つのプロジェクトがあります。Source-Project には、次のクラスがあります。
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i("", "normal mode");
}
}
私のテスト プロジェクトでは、たとえば、ログ メッセージを変更/上書きしたいと考えています。もちろん、次のようにして、新しいクラスを同じパッケージ パスに配置し、クラスを次のように変更できます。
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i("", "test mode");
}
}
しかし、クラスにもっと多くの機能があり、この機能を (テスト クラスでも) 使用したいとしましょう。同じように名前が付けられているため、SourceProject-Class「MyActivity」を拡張することはできません。しかし、名前を「MyActivityX extends MyActivity」に変更すると、明らかにアプリケーションにコンパイルされません。
完全なソース クラスをテスト プロジェクトにコピーして、そこで変更する必要のない解決策はありますか?