Android编程单元测试实例详解(附源码下载)

2019-12-10 19:53:41刘景俊
  • import com.phicomm.hu.FxLoginActivity;   public class FxLoginActivityTest extends ActivityInstrumentationTestCase2<FxLoginActivity>  
  • {   private Instrumentation mInstrumentation;  
  • private FxLoginActivity mLoginTest;   private EditText userName;  
  • private EditText passWord;   private Button login;  
  • private Button reset;   public FxLoginActivityTest()  
  • {   super(FxLoginActivity.class);  
  • }   //重写setUp方法,在该方法中进行相关的初始化操作  
  • @Override  protected void setUp() throws Exception  
  • {   // TODO Auto-generated method stub  
  • super.setUp();   /**这个程序中需要输入用户信息和密码,也就是说需要发送key事件,  
  • * 所以,必须在调用getActivity之前,调用下面的方法来关闭   * touch模式,否则key事件会被忽略  
  • */  //关闭touch模式  
  • setActivityInitialTouchMode(false);   mInstrumentation = getInstrumentation();  
  • //获取被测试的FxLoginActivity   mLoginTest = getActivity();  
  • //获取FxLoginActivity相关的UI组件   userName = (EditText)mLoginTest.findViewById(com.phicomm.hu.R.id.name);  
  • passWord = (EditText)mLoginTest.findViewById(com.phicomm.hu.R.id.psd);   login = (Button)mLoginTest.findViewById(com.phicomm.hu.R.id.login);  
  • reset = (Button)mLoginTest.findViewById(com.phicomm.hu.R.id.reset);   }  
  • //该测试用例实现在测试其他用例之前,测试确保获取的组件不为空   public void testPreConditions()  
  • {   assertNotNull(mLoginTest);  
  • assertNotNull(userName);   assertNotNull(passWord);  
  • assertNotNull(login);   assertNotNull(reset);  
  • }   /**该方法实现在登录界面上输入相关的登录信息。由于UI组件的  
  • * 相关处理(如此处的请求聚焦)需要在UI线程上实现,   * 所以需调用Activity的runOnUiThread方法实现。