android junit测试google示例代码
我已经从developer.android下载了这段代码android junit测试google示例代码,android,junit,Android,Junit,我已经从developer.android下载了这段代码 public class SpinnerTestActivity extends ActivityInstrumentationTestCase2<SpinnerActivity> { private SpinnerActivity mActivity; private Spinner mSpinner; private SpinnerAdapter mPlanetData;
public class SpinnerTestActivity extends
ActivityInstrumentationTestCase2<SpinnerActivity> {
private SpinnerActivity mActivity;
private Spinner mSpinner;
private SpinnerAdapter mPlanetData;
public static final int ADAPTER_COUNT = 9;
public static final int INITIAL_POSITION = 0;
public static final int TEST_POSITION = 5;
private String mSelection;
private int mPos;
public SpinnerTestActivity() {
super("com.android.example.spinner", SpinnerActivity.class);
} // end of SpinnerActivityTest constructor definition
@Override
protected void setUp() throws Exception {
super.setUp();
setActivityInitialTouchMode(false);
mActivity = getActivity();
mSpinner = (Spinner) mActivity
.findViewById(com.android.example.spinner.R.id.Spinner01);
mPlanetData = mSpinner.getAdapter();
} // end of setUp() method definition
public void testPreConditions() {
assertTrue(mSpinner.getOnItemSelectedListener() != null);
assertTrue(mPlanetData != null);
assertEquals(mPlanetData.getCount(), ADAPTER_COUNT);
} // end of testPreConditions() method definition
public void testSpinnerUI() {
mActivity.runOnUiThread(new Runnable() {
public void run() {
mSpinner.requestFocus();
mSpinner.setSelection(INITIAL_POSITION);
} // end of run() method definition
} // end of anonymous Runnable object instantiation
); // end of invocation of runOnUiThread
this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
for (int i = 1; i <= TEST_POSITION; i++) {
this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
} // end of for loop
this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
mPos = mSpinner.getSelectedItemPosition();
mSelection = (String) mSpinner.getItemAtPosition(mPos);
TextView resultView = (TextView) mActivity
.findViewById(com.android.example.spinner.R.id.SpinnerResult);
String resultText = (String) resultView.getText();
assertEquals(resultText, mSelection);
}
}
公共类SpinnerTestActivity扩展
ActivityInstrumentationTestCase2{
私人自生能力;
私人纺纱机;
专用SpinnerAdapter mPlanetData;
公共静态最终整数适配器计数=9;
公共静态最终int初始位置=0;
公共静态最终内部测试位置=5;
私有字符串选择;
私人int mPos;
公共喷丝头测试活性(){
super(“com.android.example.spinner”,SpinnerActivity.class);
}//SpinerActivityTest构造函数定义的结尾
@凌驾
受保护的void setUp()引发异常{
super.setUp();
setActivityInitialTouchMode(假);
mActivity=getActivity();
mSpinner=(微调器)活动性
.findviewbyd(com.android.example.spinner.R.id.Spinner01);
mPlanetData=mSpinner.getAdapter();
}//setUp()方法定义的结束
public void testprepositions(){
assertTrue(mSpinner.getOnItemSelectedListener()!=null);
assertTrue(mPlanetData!=null);
assertEquals(mPlanetData.getCount(),适配器计数);
}//TestPremissions()方法定义的结束
public void testSpinnerUI(){
mActivity.runOnUiThread(新的Runnable(){
公开募捐{
mSpinner.requestFocus();
mSpinner.setSelection(初始位置);
}//运行结束()方法定义
}//匿名可运行对象实例化结束
);//runOnUiThread调用结束
这个.sendKeys(KeyEvent.KEYCODE\u DPAD\u中心);
对于(inti=1;i这个愚蠢的问题,我从中找到了答案
测试用例的生命周期基本上是这样的:构造
,设置()
,测试运行
,拆卸()
,以及销毁
。设置()
方法用于执行所有特定测试使用的任何常规初始化。要在测试用例中运行的每个测试都作为自己的方法实现,其中方法名称以“test”开头。然后使用tearDown()
方法取消初始化setUp()
方法获取的任何资源。
每个特定测试都有自己的方法,以“test”开头,“test”方法名称前缀区分大小写
我最初的问题是测试方法是如何运行的,因为没有人调用它。但是从上面的测试来看,每个方法都应该与测试一起运行,以便识别。我不确定您在这里要问的是什么。您是否想知道应用程序是如何启动的?您是否想知道它是如何与获取的活动上的微调器进行交互的推出?