サービスを起動するアクティビティの Junit テストを作成しています。
startService(new Intent(this, MyClass.class));
MyClass.class
テストの目的で、スタブ クラス(MyStubClass.class)に置き換えたい
SOF を広範囲に検索しましたが、解決策を見つけることができませんでした。アプリケーションにテスト関連のコードを追加せずにスワップを行うことは可能ですか?
サービスを起動するアクティビティの Junit テストを作成しています。
startService(new Intent(this, MyClass.class));
MyClass.class
テストの目的で、スタブ クラス(MyStubClass.class)に置き換えたい
SOF を広範囲に検索しましたが、解決策を見つけることができませんでした。アプリケーションにテスト関連のコードを追加せずにスワップを行うことは可能ですか?
上記のスレッドにコメントすると、私はその記事が述べていることの多くに同意しますが、そのすべてに同意するか、またはそのような細かい区別を行う必要性にさえ同意するかどうかはわかりません. 私の考えでは、モックは実行時の置き換え、スタブは未完成の作業、または実際の置き換えではなくポリモーフィズムに依存するテスト固有の実装と考えています。しかし、私は専門家ではないので、私の意見を一粒の塩で受け止めてください。いずれにせよ、クラスをモック化されたバージョンに置き換える場合、モックの実装で特別なことを行う必要はありません。
とにかく、ここにあなたが求めたドキュメントがあります: http://jmockit.googlecode.com/svn/trunk/www/tutorial/StateBasedTesting.html#mocks
私は jmockit を使用して、実装を気にしないインターフェイスをスタブ化し、Android スタブ実装を例外をスローしないスタブに置き換え、場合によってはそれらの同じスタブを最小限の機能の実装に置き換えました。私の場合、単体テストをすばやく実行できるようにしたいと考えていました。これは、エミュレーターまたは物理デバイスの外部で実行することを意味していました。そのようなことに興味がある場合は、Robolectric のようなものと一緒にモッキング パッケージを使用すると、命の恩人になります。