MyActivity
を使用しないクラスの単純な単体テストを考えてくださいRobolectric.setupActivity
。MyActivity.onCreate
呼び出されたときに何らかの事前初期化が行われることを確認するために呼び出すテストケースを作成します。このテスト ケースはsuper.onCreate
、Android システムによって強制される呼び出しで失敗します。
Mock
モックできるメンバー変数を使用しないため、役に立ちません。
Stub
テストを無意味にするアクティビティのonCreateメソッドをスタブできる継承のため、Aは役に立ちません。
あなたは逃しますSpy
が、これも継承のために役に立ちません。Spy を使用すると、スタブのような実際の onCreate 呼び出しを回避できますが、テストも無意味になります。
は、このShadow
ような状況で役立ちます。これはプロキシのように処理します。継承されたクラスごとに明示的なプロキシが存在する場合があります。静的メソッドについても、各タイプのメソッド呼び出しをインターセプトできます。たとえばandroid.app.Activity
、 onCreate メソッドをシャドーイングし、例外をスローする代わりに何もしないプロキシを作成できます...そこでこのイベントを保存できるので、後でこの super.method が予期された引数で呼び出されたことを確認できます。必要 ;)