4

Android プロジェクトでいくつかの関数を使用する Java プログラムを作成しようとしています。Android デバイスやエミュレーターは必要ありません。Android プロジェクトの機能の一部を使用するだけで済みます。

私が直面している問題はこれです:私はこのFROM JAVAのようなものを実行しようとしています:

AndroidProject testService = new AndroidProject(_context);
testService.start();

しかし、「コンテキスト」は Android のものであり、それを作成する方法、モックする方法、Java クラスから取得する方法がわかりません。

私は実際にはコンテキストには興味がありません。本当に興味testService.start()があるのは だけですが、AndroidProject の () コンストラクターはありませAndroidProject(context)ん。

私はもう試した

Context _context;
_context = null;
AndroidProject testService = new AndroidProject(_context);
testService.start();

しかし、私はException in thread "main" java.lang.RuntimeException: Stub!エラーが発生します

私も試してみました

MainActivity myMainActivity = new MainActivity();
Context _context;
_context = myMainActivity.getBaseContext(); // also tried getApplicationContext()

モッキングについて調べ始めましたが、複雑にしすぎているかどうかはわかりません...

  • MockitoMainActivity 」はインターフェースのモックのみで、クラスをモックしたいのですが 、
  • Android Mock」は複雑すぎて、プロジェクトをビルドできませんでした MainActivity myMockObject = AndroidMock.createMock(MainActivity.class);
  • Robotium」は、Android アプリをテストする Android アプリのようです。

ある種の Android ダミー コンテキストを作成し、それを Java アプリケーションで使用して、その Android クラスの他の機能にアクセスしたいだけです...これは可能ですか?

4

1 に答える 1

2

android.jarクラスのスタブ実装のみが含まれます。APK を取得したら、Android デバイスまたはエミュレーターで実行する必要があります。

必要なコンポーネント (つまり ) をモックしたとしても、どこかでスタブContextに到達します。そうでない場合、実行しようとしているコードは Android に依存していないため、Java と Android のプロジェクト間で共有できる外部コードに組み込むことができます。jar

于 2013-04-03T23:49:40.063 に答える