【发布时间】:2012-10-24 01:49:43
【问题描述】:
我有以下活动:
package codeguru.startactivityforresult;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class ChildActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.child);
this.resultButton = (Button) this.findViewById(R.id.result_button);
this.resultButton.setOnClickListener(onResult);
}
private View.OnClickListener onResult = new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent result = new Intent();
result.putExtra(ChildActivity.this.getString(R.string.result), ChildActivity.this.getResources().getInteger(R.integer.result));
ChildActivity.this.setResult(RESULT_OK, result);
ChildActivity.this.finish();
}
};
private Button resultButton = null;
}
还有以下 JUnit 测试:
package codeguru.startactivityforresult;
import android.app.Activity;
import android.test.ActivityInstrumentationTestCase2;
import android.test.UiThreadTest;
import android.widget.Button;
import junit.framework.Assert;
public class ChildActivityTest extends ActivityInstrumentationTestCase2<ChildActivity> {
public ChildActivityTest() {
super(ChildActivity.class);
}
@Override
public void setUp() throws Exception {
super.setUp();
this.setActivityInitialTouchMode(false);
this.activity = this.getActivity();
this.resultButton = (Button) this.activity.findViewById(R.id.result_button);
}
@Override
public void tearDown() throws Exception {
super.tearDown();
}
@UiThreadTest
public void testResultButtonOnClick() {
Assert.assertTrue(this.resultButton.performClick());
Assert.fail("How do I check the returned result?");
}
private Activity activity;
private Button resultButton;
}
如何确保单击按钮设置正确的结果(调用setResult())将返回到以startActivityForResult() 启动此活动的任何活动?
【问题讨论】:
-
Testing onActivityResult() 的可能重复项
-
@JohnB 这是一个相关但完全不同的问题。在这里,我问如何测试“孩子”活动。您作为可能重复提供的问题询问有关测试“父”活动的问题。我决定将它们作为两个单独的问题发布,以便我可以提出两个重点问题,而不是将这两个问题隐藏在大量代码之间。
标签: android testing junit android-activity instrumentation