作为一个技术测试者,没有更深入的了解java,我有一个关于robotium和ActivityInstrumentationTestCase2的问题。我已经设法使用eclipse和robotium创建一个测试用例。它可以工作,我可以将它作为junit测试以及从真实设备上的命令行执行。作为一种方法的Robotium测试案例
我现在想将这个robotium/solo测试用例移到我们现有的测试框架中,其中每个类/测试用例都由“abstractchecker”扩展。下面是我们的网络测试案例
package ipoMonitor.checkers;
import ipoMonitor.CheckInfo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import java.sql.Connection;
import static org.junit.Assert.assertTrue;
public class EmConsoleChecker extends AbstractChecker {
public EmConsoleChecker(CheckInfo curCheck, Connection con, WebDriver driver) {
super(curCheck, con, driver);
}
@Override
public void runCheck() {
curCheck.subCheckName = "Homepage";
driver.get(curCheck.baseUrl);
assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
.matches("^[\\s\\S]*Login[\\s\\S]*$"));
WriteLog(curCheck, con, " OK");
}
}
是它在某种程度上可能保持这个标准,有一个robotium测试类运行的方法,而不是一类一的例子吗?如果是这样的代码将如何?
最初记录extsolo我robotium测试用例看起来像这样
public class Test extends ActivityInstrumentationTestCase2<Activity> {
final String[] proj = {"*"};
private static final String LAUNCHER_ACTIVITY_CLASSNAME = "com.somecompany.androidsmsapp.MainActivity";
private static Class<?> launchActivityClass;
static {
try {
launchActivityClass = Class.forName(LAUNCHER_ACTIVITY_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
private Solo solo;
@SuppressWarnings("unchecked")
public Test() {
super((Class<Activity>) launchActivityClass);
}
@Override
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
super.tearDown();
}
public void testRecorded() throws Exception {
try {
Log.i("assert", "---------------NEW RUN-------------------");
Log.i("assert", "Starting SendSMS");
solo.waitForActivity("MainActivity");
// Loads of solo commands executed here
.....
.....
} catch (AssertionFailedError e) {
throw e;
} catch (Exception e) {
throw e;
}
}
}
我已经注意到,当您在Eclipse中创建一个robotium测试的情况下,有库和自动添加类路径容器。有没有人有他们可以共享的工作示例或链接到一个?我在网上搜索了一个looooooooong时间,但没有找到任何解决办法。任何帮助表示赞赏。
最好的问候, 马蒂亚斯