对 robotium 进行了封装 使用两层 TestCase ActivityPage ,更有利于用面向对象思想编写脚本,但是发觉有时候在真机上不能运行,模拟器可以,有用过的同学讨论下!
从没听说过这个框架. 你最好加上介绍
同样没听过呢,至少来个链接,让大家了解一下
仿 webdriver 中 PageFactory 模式
public class LoginViewPage extends BaseActivityPage {
public LoginViewPage(Zinc zinc) {
super(zinc);
}
@FindBy(id = R.id.username)
private AndroidElement usernameEdit;
@FindBy(type = AndroidElementType.EditText, index = 1)
private AndroidElement passwordEdit;
@FindBy(type = AndroidElementType.Button, text = "登陆")
private AndroidElement loginButton;
public MainViewPage login(String username, String password) {
usernameEdit.clear();
usernameEdit.sendKeys(username);
passwordEdit.clear();
passwordEdit.sendKeys(password);
loginButton.click();
return new MainViewPage(zinc);
}
}
TestCase 是继承了 ActivityInstrumentationTestCase2。因为是两层可以调用你 PageObject,这样更接近 webdriver 的写法。
public class LoginViewTest extends ZincTestCase<loginview> {
public LoginViewTest() {
super("com.baidu.zinc30.sample", LoginView.class);
}
public void testLoginSuccess() {
LoginViewPage loginViewPage = new LoginViewPage(zinc);
MainViewPage mainViewPage = loginViewPage.login("zinc", "zinc");
Assert.assertTrue("should login success",
mainViewPage.isActivityPresent(MainView.class));
}
}
#6 楼 @lihuazhang 不认识作者呀我
#6 楼 @lihuazhang 在 github 上找到了
https://github.com/azyzhang/zinc30
看包名是百度的,不过也很旧了(12 年后就没更新了)。
至于你提到的 “有时候在真机上不能运行,模拟器可以”,给一些 logcat 之类的日志信息吧。估计很多人都没用过。
#3 楼 @konami1986 PageFactory 模式,appium driver 也支持的,webdriver 是所有类型 driver 的接口
#11 楼 @konami1986 难道 appium 无线不行吗?
#11 楼 @konami1986 appium 支持, 你对 appium 了解还少.