Android robotium中是否有类似pagefactory的模式?
我正试图通过使用robotium为我们的Android应用程序构建一个自动化测试用例环境。虽然robotium现在可以运行,但我仍然不知道如何使测试用例更简短或更有条理。现在,测试用例看起来非常复杂和混乱。 当我使用selenium时,有一个pagefactory模式Android robotium中是否有类似pagefactory的模式?,android,robotium,Android,Robotium,我正试图通过使用robotium为我们的Android应用程序构建一个自动化测试用例环境。虽然robotium现在可以运行,但我仍然不知道如何使测试用例更简短或更有条理。现在,测试用例看起来非常复杂和混乱。 当我使用selenium时,有一个pagefactory模式 robotium里有类似的东西吗 您可以使用中的页面对象您可以使用中的页面对象您可以签出项目。Robotium三明治使为Robotium创建页面对象变得超级容易。您可以查看项目。Robotium Sandwich使为Robotiu
robotium里有类似的东西吗 您可以使用中的页面对象您可以使用中的页面对象您可以签出项目。Robotium三明治使为Robotium创建页面对象变得超级容易。您可以查看项目。Robotium Sandwich使为Robotium创建页面对象变得超级容易。首先,您需要区分这两种模式,页面对象和页面工厂。页面对象模式是通过在moble应用程序中创建表示网页或等效网页的类来实现的。页面工厂模式是页面对象和模式的组合。Selenium确实提供了实现PageObject工厂模式的类,但实现可能很棘手,而且容易出现错误,我和我的同事都不希望使用它 因此,由于页面对象模式是您真正想要的,我将向您展示我的同事和我在Robotium中实现此模式的一些想法 在Robotium中,Selenium WebDriver的大致等价物是Solo类。它基本上是一个用于一系列其他对象的列表,您可以同时看到该列表中所有涉及的类的列表 要使用Robotium Solo对象实现页面对象模式,首先从一个抽象页面对象开始,该对象具有一个Solo字段,如Selenium中的WebDriver字段
public abstract class AppPage {
private Solo solo;
public AppPage(Solo solo) {
this.solo = solo;
}
public Solo getSolo() {
return this.solo;
}
}
然后,为每个页面扩展AppPage,如下所示:
public class MainPage extends AppPage {
public MainPage(Solo solo) {
super(solo);
}
// It is useful to be able to chain methods together.
// For public methods that direct you to other pages,
// return the Page Object for that page.
public OptionsPage options() {
getSolo().clickOnButton(getSolo().getString(R.string.options_button));
return new OptionsPage(getSolo());
}
//For public methods that DON'T direct you to other pages, return this.
public MainPage searchEntries(String searchWord) {
EditText search = (EditText) solo.getView(R.id.search_field);
solo.enterText(search, searchWord);
return this;
}
}
在Robotium中实现页面对象模式时,您可以做很多更奇特的事情,但这会让您从正确的方向开始。首先,您需要区分这两种模式,页面对象和页面工厂。页面对象模式是通过在moble应用程序中创建表示网页或等效网页的类来实现的。页面工厂模式是页面对象和模式的组合。Selenium确实提供了实现PageObject工厂模式的类,但实现可能很棘手,而且容易出现错误,我和我的同事都不希望使用它 因此,由于页面对象模式是您真正想要的,我将向您展示我的同事和我在Robotium中实现此模式的一些想法 在Robotium中,Selenium WebDriver的大致等价物是Solo类。它基本上是一个用于一系列其他对象的列表,您可以同时看到该列表中所有涉及的类的列表 要使用Robotium Solo对象实现页面对象模式,首先从一个抽象页面对象开始,该对象具有一个Solo字段,如Selenium中的WebDriver字段
public abstract class AppPage {
private Solo solo;
public AppPage(Solo solo) {
this.solo = solo;
}
public Solo getSolo() {
return this.solo;
}
}
然后,为每个页面扩展AppPage,如下所示:
public class MainPage extends AppPage {
public MainPage(Solo solo) {
super(solo);
}
// It is useful to be able to chain methods together.
// For public methods that direct you to other pages,
// return the Page Object for that page.
public OptionsPage options() {
getSolo().clickOnButton(getSolo().getString(R.string.options_button));
return new OptionsPage(getSolo());
}
//For public methods that DON'T direct you to other pages, return this.
public MainPage searchEntries(String searchWord) {
EditText search = (EditText) solo.getView(R.id.search_field);
solo.enterText(search, searchWord);
return this;
}
}
在Robotium中实现页面对象模式时,您可以做很多更奇特的事情,但这会让您朝着正确的方向开始。Hi!请记住始终用文字或代码描述您的答案。只是一个链接到外部网站不是一个好的选择。嗨!请记住始终用文字或代码描述您的答案。仅仅链接到外部站点并不是一个好的选择。