草庐IT

Robotium

全部标签

java - Robotium:如何在继续之前等待加载完成?

我想为Android应用程序编写Robotium/Junit测试。在某些步骤,我希望我的测试等到旋转加载符号从屏幕上消失。我该怎么做? 最佳答案 您可以通过不同的方式来做到这一点。在Robotium中,您可以使用许多不同的waitFor方法。在您的情况下,您可以使用:solo.waitForDialogToClose()//waitsforthedialogtoclosesolo.waitForActivity()//ifthereisaactivitychangesolo.waitForText()//ifacertaintext

android - robotium 测试每次点击之间的等待时间

在robotium测试中,是否可以设置点击之间的等待时间?例如,我有2个按钮(A和B)。我想让机器人点击按钮A,然后在20秒后点击按钮B。 最佳答案 你可以正常使用这段代码solo.clickOnButton(0);solo.sleep(20000);//20秒solo.clickOnButton(0); 关于android-robotium测试每次点击之间的等待时间,我们在StackOverflow上找到一个类似的问题: https://stackoverf

java - 机器人。 waitForActivity() 为 TabHostActivity 中的嵌入式 Activity 返回 false

我有一个TabHostActivity,它有4个选项卡(和4个相应的Activity)。在测试中,当我单击其中一个them("Search")时,SearchActivity应该会出现(实际上确实如此)。问题是,在Robotuim-test中,我尝试使用solo.waitForActivity()等待这个Activity,即使Activity在屏幕上,它也会失败。此Activity的所有View也无法通过solo.getView()获得-返回空值。 最佳答案 如果solo.waitForActivity()不起作用,您可以使用sol

android - 以编程方式安装 Android apk 作为测试框架的一部分

我正在尝试以编程方式安装apk,但运气不佳。我正在设置一个针对物理设备的自动化测试框架,我想让测试设备在运行测试之前从构建服务器检索最新的apk。虽然我知道在没有用户同意的情况下没有通用的方法来实际安装apk,但我很好奇在开发人员同时拥有apk和设备的情况下是否有一些可用的方法。我以前尝试过的方法(apk已经下载到pathName/apkFilename):Stringcommand="adbinstall"+pathName+apkFilename;Runtime.getRuntime().exec(command);和:Intentintent=newIntent(Intent.A

android - Robotium:仅单击 alertDialog 中的文本,而不单击下方 Activity 中的文本

我有一个显示一些文本的Activity,例如“someText”。从这个Activity中,我打开一个警告对话框如下:AlertDialog.Builderbuilder=newAlertDialog.Builder(getContext());builder.setTitle("Title");String[]items={"Hello","World","someText"};builder.setItems(items,newMultiChoiceEventOnClickListener(...);builder.setCancelable(true);builder.show(

android - 现有的 Android UI 测试在切换到 AndroidJUnitRunner 后停止工作

我们围绕相机功能进行了一些UI测试,在我们从InstrumentationTestRunner切换到AndroidJUnitRunner作为迁移到Espresso/JUnit4的一部分之后,我们可以当我们调用getActivity()时,由于频繁出现RuntimeException,不再可靠地运行我们现有的测试:java.lang.RuntimeException:CouldnotlaunchintentIntent{flg=0x14000000cmp=com.cookbrite.dev/com.cookbrite.ui.ReceiptCaptureActivity(hasextras

android - 如何使用 Robotium/Android SDK 找出堆栈顶部的 Activity?

我有一个针对Android应用程序的Robotium测试,它扩展了ActivityInstrumentationTestCase2。测试循环运行,随机点击ActivityView。我想在每次迭代开始时验证当前关注的是哪个Activity。这种行为对我来说很重要,因为其中一个按钮能够启动另一个Activity,从而使循环中的进一步操作变得不可能,因为它们指的是被测Activity(这是我停止Robotium测试时)。我想要一个适用于任何Activity的通用解决方案,而无需更改onDestroy()方法。当按下主页按钮时,此解决方案也必须适用。 最佳答案

Android:Robotium 与 android 测试框架

每个人都使用Robotium进行GUI测试。你能告诉我哪些Android原生测试框架不能做而Robotium可以做的吗?据我所知Robotium可以用作黑盒测试,所以我不需要了解应用程序资源。还有什么? 最佳答案 机器人优点:支持带有webView的混合应用程序。只要使用UIatomator编写复杂的测试用例需要您做大量工作,您就可以将测试绑定(bind)到被测应用程序的唯一ID在UIatomator中使用了UiAutomatorTestCaseInstrumentation,它不能让您调用当前Activity并检查是否加载了合适的

android - 在android应用中要进行哪些单元测试

我的应用程序大多是GUI,它们会与服务器通信以获取大多数信息。如果发生任何错误,通常将在网络调用中或对JSON对象做出错误的假设。单元测试不适用于这些与网络和I/O相关的任务,否则它们将不被称为单元测试。因此,在我的案例中,我试图收集单元测试的要点。为什么要测试Android按钮是否可以单击或EditText是否可以看到我键入的内容?我只是不了解实现这些乏味测试的效用privatevoidinitElements(){placeButton=(Button)findViewById(R.id.currplace);placeButton.setText(MainActivity.thi

java - 机器人。在测试套件中,每个下一个测试都受到前一个测试的影响

我有多个UI测试。当我运行单个测试时,一切正常。但是,如果我运行一批(作为CI构建的一部分)测试失败,因为首先进行的测试会更改应用程序的状态,而下一个测试会受到这些更改的影响。(因为应用程序没有被杀死)。我在tearDown()中尝试了getActivity().finish()。尝试了solo.finalize(),它实际上做了同样的事情。有没有办法在每次测试运行开始时拥有一个全新的应用程序?(使用Robotium)。有没有办法在测试结束时以编程方式终止应用程序?我正在使用ActivityInstrumentationTestCase2和Robotium