2011-10-21 4 views
3

私は2つのアクティビティを持っています。最初のアクティビティは、作成メソッドで2番目のアクティビティを起動させるスタートアップアクティビティです。 私Robolectricテストは、私はそれが私のデバイスにし、私のRobolectricが私のアサートcurrrentアクティビティを動作させることができません

public void testLoginFirstTime() throws Exception 
{ 
    LoginActivity activity = new LoginActivity();   
    activity.onCreate(null); 
    assertThat(activity, new StartedMatcher(MainActivity.class));   
} 

マイRobotiumをテスト

エミュレータ上で起動する原因私の活動が正常に動作します知っている細かい

活動

public class LoginActivity extends Activity { 

/** Called when the activity is first created. */ 
@Override  

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.loginview); 

    Intent intent = new Intent(this,MainActivity.class); 
    startActivity(intent); 
} 

を渡しますテスト

public void setUp() throws Exception { 
    solo = new Solo(getInstrumentation(), getActivity()); 
} 


public void testLoginFirstTime() throws Exception 
{ 
    solo.assertCurrentActivity("Expected MainActivity to launch", MainActivity.class); 
} 

私のrobotiumアサーションで何が問題になっていますか?エミュレータ/デバイスを見ると、Robotiumが実際にMainActivityを起動していることがわかりますが、新しいアクティビティが起動したことはわかりませんが、現在のアクティビティは常にログインとみなされます。 編集:ログインビューにボタンを追加し、ボタンをクリックして新しいアクティビティを起動すると、Robotiumはクリックを実行して、新しいアクティビティが開始されたことを確認します。

編集:それはまだrobotiumで、ユーザーがそれを使用するのと同じ方法を私のアプリをテストする方法の問題、すなわちで私を残ししかし は浮気とでは起動していません、そのRobotium制限 http://groups.google.com/group/robotium-developers/browse_thread/thread/79a70038c16e35e6 のように見えます異なるアクティビティ:(

答えて

7

コンストラクタsolo = new Solo(Instrumentation instrumentation)を使用する必要があります。次に、Soloオブジェクトを作成した後、最初のアクティビティを開始するためにgetActivity()を呼び出します。

関連する問題