问题标签 [android-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
107 浏览

android - 如何为我的 android 方法编写单元测试?

我写了一些代码。现在我需要为它编写单元测试。我不知道如何为这种方法编写它:

baseDocElement 和 authResult 定义为

我使用junit反射测试的其他一些方法

请帮忙,我不知道如何测试。

0 投票
2 回答
1690 浏览

android - 在测试用例中,第二个 getActivity() 没有调用 onCreate()

我有一个单元测试,在我销毁并完成应用程序后,我再次调用 getActivity() 以验证它是否正确加载。但是,它没有调用 onCreate()!

这是日志

我不知道为什么它在日志文件中说 onCreate 。就像 onCreate() 被异步调用一样!这是我的 onCreate()。

我试过 waitForIdleSync()

但这没有帮助。

0 投票
0 回答
539 浏览

android - ActivityMonitor 被击中,但 getLastActivity 返回 null

我的测试套件中的一个测试用例有问题。我想要做的只是点击一个按钮并等待一个新的活动启动。

根据文档,此代码应等待最多 60 秒以使监视器被击中。如果它被击中,则将返回活动(否则为 null)。

发生的情况是,有时测试会通过,但大多数时候它会失败,因为a == null. 我正在观察运行的测试用例,我可以清楚地看到它没有等待 60 秒。只有一点。通过一些打印输出,我还注意到监视器实际上被击中,但返回的活动getLastActivity()仍然是null.

1)这怎么可能?

2)我能做些什么来避免它吗?

0 投票
3 回答
5878 浏览

android - 如何向 CTS-Tradefed 输入指令?

我目前正在尝试自动化 android ICS CTS 中的几个步骤。

  1. 当我们执行时,./cts-tradefed我们会得到cts-tf >提示。
  2. 然后我可以进入运行cts --plan CTS
  3. 然后 exit 命令退出提示。

在这里,我想在一个 shell 脚本中编写以上 3 个步骤。但无法用下面的脚本做到这一点。尝试了多种方式,但无法实现。请帮忙。

想要执行:

1. ./cts-tradefed

2.运行cts --plan CTS exit

3. ./cts-tradefed

4. run cts --plan CTS

5. exit

任何 shell、python 或 perl 语言的帮助表示赞赏。

0 投票
0 回答
631 浏览

android - 测试项目中片段的ActivityMock

我的Activity内容很少Fragments,现在我想测试其中之一,Fragment但我想分开测试并仅测试 selected 的核心功能,Fragment而不打扰 main 中发生的事情Activity

我的想法是创建一个Activity只添加方法Fragment的模拟。onCreate()然后我会做一些测试。但我不想Activity在我的主要项目中包含模拟,我宁愿将它包含在测试项目中。所以我做了这样的事情:

  1. 我创建了MockActivity

    /li>
  2. 我想像这样测试它:

    /li>

问题是我得到错误:

好的接下来我尝试修改测试项目AndroidManifest.xml

但我得到了同样的错误。我认为那是因为无论如何在测试运行主要项目中都会搜索ActivityMock. 所以我尝试添加

我不知道这是否是个好主意,但主要想法是测试项目将能够测试(仪器)本身。但现在我得到:

所以我认为修改后的AndroidManifest.xml工作但仍在ActivityMock主项目中搜索类,尽管它在测试项目中。我假设该getActivity()方法总是在主项目中寻找活动类。

有没有人尝试过Fragment这种方式并能够创建Activity模拟?

干杯

0 投票
1 回答
615 浏览

android - Android WebDriver 不使用 Android 测试框架加载 https 页面

如何使用 AVD 上的 Android 测试框架在 Android WebDriver 上加载 https 页面?根据 AndroidDriver 常见问题解答 (http://code.google.com/p/selenium/wiki/AndroidDriver#Android_fails_to_load_HTTPS_pages),您需要在制作新的 AndroidDriver 时启用功能:

但是,当使用 Android 测试框架时,使用的驱动程序是 AndroidWebDriver 而不是 AndroidDriver。在 AndroidDriver 构造函数中,您可以使用功能作为参数来允许 https 页面,但在 AndroidWebDriver 构造函数中,唯一的参数是需要使用的 Activity。那么,您将如何设置功能以允许 AndroidWebDriver 加载 https 页面?

0 投票
1 回答
721 浏览

android - 在 Google 的 CTS 中,名为 cts-tradefed 的脚本代表什么?

我刚刚开始使用 Google 的 CTS,遇到了一个脚本,它对它的解释很少 - cts-tradefed。我在网上搜索并找到了一些提到它的资源,例如CDDCTS 手册,但没有任何地方说明它代表什么。

0 投票
1 回答
1086 浏览

android - Robolectric:findViewById 返回 null

我正在尝试用 Robolectric 做一个非常简单的测试,我想测试一个视图是否存在。这与 Robolectric 网站中的示例非常相似,但findViewById一直返回 null。

可能是什么问题?

这是活动:

这是测试:

布局 XML 文件包含ImageView具有正确 id 和资源的,在模拟器中运行活动就可以了。

0 投票
2 回答
5366 浏览

android - 警告(junit.framework.TestSuite$1):通过 Maven 执行 Android 测试时,构造函数中出现异常

我通过 Maven 设置了一个 Android 测试项目,并按照此处的说明进行操作。基本上我能够设置测试项目,即使模拟器被识别,但在执行 mvn install (在 Eclipse 中)时我仍然无法通过 Maven 运行测试。如果我尝试执行它,我会收到以下错误:

失败的测试:警告(junit.framework.TestSuite$1):构造函数中的异常:testPersistAndRead(java.lang.RuntimeException:存根!(..)警告(junit.framework.TestSuite$1):构造函数中的异常:testFileNotExists(java.lang .RuntimeException:存根!(..)警告(junit.framework.TestSuite$1):构造函数中的异常:testCreateFiles(java.lang.RuntimeException:存根!(..)警告(junit.framework.TestSuite$1):构造函数中的异常:testFilesExist(java.lang.RuntimeException:存根!(..)警告(junit.framework.TestSuite $ 1):构​​造函数中的异常:testAndroidTestCaseSetupProperly(java.lang.RuntimeException:存根!(..)

surfire 的输出告诉我它嵌套在 AndroidTestCase 中:

junit.framework.AssertionFailedError: 构造函数中的异常:testPersistAndRead (java.lang.RuntimeException: Stub! at android.test.AndroidTestCase.(AndroidTestCase.java:5) [...]

这是我尝试运行的测试。

...这是来自测试项目的 pom.xml。

任何想法为什么这不起作用?

0 投票
1 回答
1057 浏览

android - Robolectric:如何测试 SherlockActivity

我正在尝试对扩展 SherlockActivity 的 Activity 运行测试。我阅读了有关使用 ActionBarSherlock 测试活动的解决方案的所有信息,并尝试遵循https://github.com/passy/absshadow-sample

这就是我目前正在做的事情:

自定义测试运行器:

影子夏洛克活动:

由于某种原因,它的失败与此有关:

我的活动确实setContentView先调用,然后再调用findViewById

奇怪的是,无论我在影子实现中做setContentView什么,似乎都没有发生任何事情(例如,抛出 a NullPojnterException)。我的影子确实被注册了,就好像我试图覆盖的实现onCreate并在那里抛出异常一样,它确实有效。

我在这里想念什么?