可以单击左边截图中需要查看的控件,这个工具会在右侧区域显示这个控件的相关信息,从中获得用户名、密码框和登入按钮的ID,从而可以编写控件类ElementsLoginActivity如下。
package com.example.todolist.test.elements; import android.widget.Button; import android.widget.EditText; import com.example.todolist.R; import com.Robotium.solo.Solo; publicclass ElementsLoginActivity { private Solo solo; //声明两个变量来存储账号输入框和密码框 private EditText nameEditText, passwordEditText; private Button loginButton; public ElementsLoginActivity(Solo solo) { this.solo = solo; } /** * 初始化时,找到所有登录页面的控件 */ public void initViews() { //通过ID找出控件,赋值给变量 nameEditText = (EditText) solo.getCurrentActivity().findViewById( R.id.nameET); passwordEditText = (EditText) solo.getCurrentActivity().findViewById( R.id.passwordET); loginButton = (Button) solo.getCurrentActivity().findViewById( R.id.loginBtn); } /** * 获得用户名输入框 * * @return */ public EditText getNameEditText() { returnnameEditText; } /** * 获得密码输入框 * * @return */ public EditText getPasswordEditText() { returnpasswordEditText; } /** * 获得登录按钮 * * @return */ public Button getLoginButton() { returnloginButton; } /** * 输入用户名 * * @param text */ publicvoid enterName(String text) { solo.enterText(nameEditText, text); } /** * 输入密码 * * @param text */ publicvoid enterPassword(String text) { //通过solo.enterText可以往输入框输入值,第一个参数指定要输入的输入框 //第二个参数是往输入框输入的值 solo.enterText(passwordEditText, text); } /** * 单击登录按钮 */ publicvoid clickLoginButton() { //通过solo.clickOnView单击你要单击的View solo.clickOnView(loginButton); } } |
现在这个控件类中只封装了一些常用的方法,如向账号框输入值、向密码框输入值、单击登录按钮等,后续可以继续完善,把这个页面常用的一些方法封装在这个控件类中,如清除账号输入框、密码框等方法,尽量使这个页面公有的一些操作都封装在这个类中,暴露给具体用例的只是这个控件类,这样如果后续有些界面改动,可能只需要修改这个控件类即可,不用修改到具体的测试类,当然,如果界面变动很大,连原本的测试用例的步骤都变了,具体的测试类还是要修改。
其他页面可以参照上面抽取控件类的方法,依次抽取出对应的控件类。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。