问题标签 [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 投票
1 回答
2638 浏览

android - Android单元测试:如何等待Activity更新UI

我正在尝试在 Activity 中测试我的 UI。但是,此 Activity 执行一些后台网络操作,并在响应更新时将其片段更新为我正在尝试测试的实际组件。

我的单元测试失败了,因为它试图在已经呈现到屏幕上的视图上断言NotNull。

我将如何向我的单元测试发出 Activity 已执行此后台操作并且一切都应该准备好进行设置和测试的信号?

0 投票
2 回答
1623 浏览

android - 从代码中调用 ActionBar 的向上按钮按下

我正在编写一个启用了 ActionBar 的 Android 应用程序。就我而言,我使用 ActionBarSherlock 来提供兼容性,但我认为在这种情况下并不重要。

我的 Activity 中的 ActionBar 左侧显示了一个向上按钮。它在调用后出现setHomeAsUpEnabled(true);并导致 HomeActivity。

我想编写一个测试用例来检查按下向上按钮是否会导致 HomeActivity。我正在使用 Robotium 在 UI 端编写测试,因此我可以通过以下断言检查当前 Activity 的类solo.assertCurrentActivity(HomeActivity.class); 但我还没有找到一种方法来调用按下向上按钮的方法。

我已经尝试过solo.clickOnView(solo.getView(android.R.id.home))getInstrumentation().invokeMenuActionSync(solo.getCurrentActivity(), android.R.id.home, 0);但它们都不起作用。

任何帮助,将不胜感激。

0 投票
1 回答
378 浏览

android - 项目中的 Android 单元测试

我正在尝试从我的主项目中创建一个 Android 测试项目。完全类似于这个问题Android: How to use test project within main project(我试图恢复这个问题,因为这个问题已经过时了,我仍然无法找到答案)。

基本上我想重现 Android 测试的方式。它们实际上只是主项目中的 /tests/ 目录“请参阅链接以了解确切的布局。”

我们想要这样做的主要原因是能够减少项目的数量,因此我们不需要每个项目都有 2 个根文件夹。(又名测试项目和真实项目)。

从那以后,我可以自由地使用任何构建,但我假设 nant 是自动运行测试的方法。

任何帮助都会很棒,谢谢。

编辑:请注意 Eclipse 的问题是不容易提供此选项(至少我还没有找到它)。你可以导航到你想要的目录并创建一个 /tests/ 但它也会带来另一个附加的项目,我在这样做时遇到了一些链接问题。)

0 投票
2 回答
6045 浏览

android - Android无法运行单元测试

我正在尝试在 Mac 上为 Android 编写单元测试脚本。我能够通过 Eclipse 运行它,但需要能够自动化一切。

创建我正在运行的项目

我正在尝试运行以下命令

并不断收到以下错误(我的测试文件夹中的 AndroidManifest.xml 给了我)

INSTRUMENTATION_STATUS: id=ActivityManagerService INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.roamdata.roampayx/android.test.InstrumentationTestRunner} android.util.AndroidException: INSTRUMENTATION_FAILED: com.roamdata.roampayx/android.test.InstrumentationTestRunner INSTRUMENTATION_STATUS_CODE : -1 在 com.android.commands.am.Am.run(Am.java:118) 在 com.android.commands.am 的 com.android.commands.am.Am.runInstrument(Am.java:616)。 Am.main(Am.java:81) 在 com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 在 com.android.internal.os.RuntimeInit.main(RuntimeInit.java:235) 在 dalvik.system。 NativeStart.main(本机方法)

显然,这是某种路径问题。有什么我想念的吗?我尝试从 mainproject 文件夹和 testsproject 文件夹运行命令。

有任何想法吗?

0 投票
1 回答
1269 浏览

android - Android 单元测试包路径错误

我一直在使用 Android 单元测试并遇到了似乎是一个路径问题。

首先我从我的项目目录中运行这个命令

这将创建一个测试项目并对其进行初始化。自动生成的 ActivityInstrumentaionTestCase2 工作正常。我可以在这里创建测试,一切正常。

注意:请注意,主要活动在 ui 包中。

这是自动生成的 Android_Manifest.xml

问题是当我尝试创建一个新的测试用例时。

接下来我构建并安装,(这里没有问题)。但后来我跑了

最后我得到以下错误

我有对 RoamPay 和 RoamPayProvider 的导入。智能感知正在工作,我正在获得这些参考。

有任何想法吗?

0 投票
1 回答
451 浏览

java - Android、JUnit 测试和失败的 BINDER TRANSACTION

我有大量的测试。当我再添加一些时,我得到E/JavaBinder(1705): !!! FAILED BINDER TRANSACTION !!!. 我该如何解决?我目前的 hack 是有多个 testTestSuite只测试我的测试的一个选择子集。必须有更好的方法来做到这一点。建议?

0 投票
2 回答
2588 浏览

android - 如何 JUnit 测试 ContentResolver.notifyChange

我正在为 a 编写测试ContentProvider,在insert我通知更改时getContext().getContentResolver().notifyChange(mUri, null);

我的测试类扩展了ProviderTestCase2。我创建了以下模拟 ContentObserver 类:

这是测试用例:

似乎onChange从未调用过,我也尝试ContentObserverMock co = new ContentObserverMock(new Handler());过相同的结果。

我在这里做错了什么?

0 投票
1 回答
98 浏览

android - 活动单元测试持有视觉结果

我正在尝试测试一个活动。此活动包含一个包含列表视图的片段。我正在传入一个对象(从数据库生成)以显示在列表视图中。

我想将此作为测试执行,以便我可以用虚拟数据填充数据库,然后将要显示的对象移交给 Activity。我的问题是单元测试并没有真正设置为让我使用虚拟数据来玩和目视检查我的片段。测试只是运行并立即关闭应用程序。

任何人都可以就他们将如何进行测试提出任何建议吗?或者是我唯一的选择是创建一个测试数据库并在应用程序中使用这个数据库,即不使用测试框架。

0 投票
0 回答
168 浏览

android - 将本机库从另一个项目链接到 JUnit 测试项目时出错

我在使用 Android JUnit Test 时遇到了一些问题,下面给出了详细信息。

我有一个 Android 应用程序(要测试)和一个相应的 JUnit 测试项目(测试应用程序)。另外,我还有另一个项目,其中包含一些我打算在我的测试项目中使用的本机库。

我曾尝试将另一个项目用作 Eclipse 下的库,但在运行 JUnit 测试时,出现错误,指出“findLibrary 返回 null”。

有一个解决方法,将本机库放在要测试的应用程序中,然后使用它。但我不想将测试库放在应用程序中。有什么解决办法吗?

0 投票
1 回答
189 浏览

android - Android:在项目中创建测试项目会导致“构建期间发生错误”,有什么想法吗?

我正在使用最新版本的 eclipse (v4) 和最新版本的 eclipse 的 ADT 插件。

阅读文档,android 建议在我正在创建的项目的相同结构中创建测试项目,但在名为 tests 的目录下(与当前 src 目录相同级别)

我已经尝试了很多次,每次单击完成时都会出现错误。

未找到元素,构建期间发生错误。

我创建了许多其他项目并删除了项目名称之间的所有空格,以防万一这导致问题,但错误仍然出现。

当然,在当前项目之外创建一个测试项目是可行的,但根据文档,最好的地方是将测试项目放在正在测试的项目中。

我有什么遗漏吗?

提前致谢