BroadcastReceiverをテストするためにAndroidTestCaseを拡張する単体テストを作成しようとしています。テストでは私は:
- 受信機のインスタンス化
- 必要なアクションと追加のパラメーターを使用してインテントを作成する
- インテントとgetContext()を使用してレシーバーを呼び出す
Android JUnit Testとしてデバッグをクリックすると、エミュレーター(正常に起動して使用可能)を起動することから始まり、実際のテストを起動しようとすると27%でハングし、発生しません。
私は何が間違っているのですか?
編集、コードスニペット
public class RemoteControlReceiverTest extends AndroidTestCase {
public RemoteControlReceiverTest() {
super();
}
private RemoteControlReceiver mReceiver;
private String accountSettings;
@Override
protected void setUp() throws Exception
{
super.setUp();
mReceiver = new RemoteControlReceiver();
accountSettings = "<y>gmail</y><u></u><n>test</n><t>smtp+ssl+://::@:25</t><s>imap+ssl+://:test@:143</s>";
}
public void testStartActivity()
{
Intent addIntent = new Intent();
addIntent.setAction("com.kaseya.email.K9RemoteControl.addAccount");
addIntent.putExtra("accountSettings", accountSettings);
mReceiver.onReceive(getContext(), addIntent);
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kaseya.email.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="3" />
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.kaseya.email" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner" />
</application>
</manifest>