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

2019-12-10 19:53:41刘景俊
  • */  public void input()  
  • {   mLoginTest.runOnUiThread(new Runnable()  
  • {   @Override 
  • public void run()   {  
  • // TODO Auto-generated method stub   userName.requestFocus();  
  • userName.performClick();   }  
  • });   /*由于测试用例在单独的线程上执行,所以此处需要同步application,  
  • * 调用waitForIdleSync等待测试线程和UI线程同步,才能进行输入操作。   * waitForIdleSync和sendKeys不允许在UI线程里运行  
  • */  mInstrumentation.waitForIdleSync();  
  • //调用sendKeys方法,输入用户名   sendKeys(KeyEvent.KEYCODE_P, KeyEvent.KEYCODE_H,  
  • KeyEvent.KEYCODE_I, KeyEvent.KEYCODE_C,   KeyEvent.KEYCODE_O, KeyEvent.KEYCODE_M,  
  • KeyEvent.KEYCODE_M);   mLoginTest.runOnUiThread(new Runnable()  
  • {   @Override 
  • public void run()   {  
  • // TODO Auto-generated method stub   passWord.requestFocus();  
  • passWord.performClick();   }  
  • });   //调用sendKeys方法,输入密码  
  • sendKeys(KeyEvent.KEYCODE_1, KeyEvent.KEYCODE_2,   KeyEvent.KEYCODE_3, KeyEvent.KEYCODE_4);  
  • }   //测试输入的用户信息  
  • public void testInput()   {  
  • //调用测试类的input方法,实现输入用户信息(sendKeys实现输入)   input();  
  • //测试验证用户信息的预期值是否等于实际值   assertEquals("phicomm", userName.getText().toString());  
  • //密码的预期值123与实际值1234不符,Failure;   assertEquals("123", passWord.getText().toString());  
  • }   //测试登录按钮  
  • public void testLogin()   {  
  • input();   //开新线程,并通过该线程在实现在UI线程上执行操作  
  • mInstrumentation.runOnMainSync(new Runnable()   {  
  • @Override  public void run()