【发布时间】:2014-02-19 19:40:38
【问题描述】:
作为对 java 没有任何深入了解的技术测试人员,我有一个关于机器人和 ActivityInstrumentationTestCase2 的问题。我已经设法使用eclipse和robotium创建了一个测试用例。它可以工作,我可以将其作为 junit 测试执行,也可以从真实设备上的命令行执行。
我现在想将这个 robotium/solo 测试用例移动到我们现有的测试框架中,其中每个类/测试用例都由“abstractchecker”扩展。下面是我们的一个 Web 测试用例的示例
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 中创建一个 robotsium 测试用例时,会自动添加库和类路径容器。有没有人有一个他们可以分享的工作示例或一个链接?我已经在网上搜索了很长时间,但没有找到任何解决方案。任何帮助表示赞赏。
最好的问候, 马蒂亚斯
【问题讨论】:
标签: java android eclipse junit robotium