问题标签 [android-junit]

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 回答
264 浏览

android - 如果过滤在子项目中没有返回任何测试,则不要失败测试

connectedDebugAndroidTest失败了

com.android.builder.testing.ConnectedDevice > 未找到测试。[SM-A310F - 7.0] 失败

未找到任何测试。这通常意味着您的测试类不是您的测试运行程序所期望的形式(例如,不要从 TestCase 继承或缺少 @Test 注释)。

这里的问题是我

  1. 在有两个子项目的父项目上执行任务:lib:mobile并且
  2. 使用过滤器(注释)运行仪器测试。

当我在父项目上运行时,子项目一个接一个地被测试。过滤器确实找到要运行的测试,:lib但没有满足过滤器的测试:mobile。这对我来说完全没问题,但是测试和 CI 失败了。

如果没有找到测试,我如何指示测试不失败(特别是在找到测试的情况下但不是在每个子项目中)

我当前的 gradle 调用是这样的:

实际上,我使用了自定义注释,但它的用途与@FlakyTest我刚刚测试的目的相同,以排除自定义注释的问题。

从同一仪器日志中摘录的相关摘录是:

处理第一个子项目的部分:

处理第一个子项目的部分:

0 投票
0 回答
67 浏览

java - 自定义运行器类 AndroidJUnit4 应该有一个带有签名 AndroidJUnit4(Class testClass) 的公共构造函数”

我正在尝试创建一个特权 apk 并更新了我的 Android.mk 以将特权模块设置为 true。我的 apk 是在 linux 版本上编译的,而不是使用 Android Studio。我的测试代码中也有以下内容

当我将我的 apk 推送到目标并尝试执行它时,看到了 junit4 错误

我的 Test.java 具有以下内容:

我的 testActivity.java 文件有以下内容:

我的 testRunner.java 有以下内容:

预期结果 测试成功完成并播放视频。但相反,我看到了错误

0 投票
1 回答
390 浏览

android - 如何在 Kotlin 中将 ActivityTestRule 与 @ClassRule 一起使用?

我怀疑我的问题和这个问题一样,但是那里的代码不完整,我一定遗漏了一些东西。

这是我的测试课:

测试失败并出现以下错误:

我在这里做错了什么?

0 投票
0 回答
1818 浏览

android - 迁移到 AndroidX 后,Gradle connectedCheck 失败并显示“未找到测试”

我正在开发一个多模块项目,在从支持库过渡到 AndroidX 后,./gradlew connectedCheck失败了:

再往上一点,我看到这条消息:

这使得失败似乎是由测试 apk 在测试运行之前崩溃引起的。当我从 Android Studio 运行一个已连接的测试时,我看到了更多信息:

令我惊讶的是,由于我包含在应用程序级依赖项中AndroidJUnitRunnerMonitoringInstrumentation因此在路径上找不到:androidx.text:runnerbuild.gradle

我还确保我遵循https://developer.android.com/training/testing/set-up-project中列出的说明:

1)我的项目build.gradle包括google()存储库(说明确实说将其包含在应用程序级别build.gradle中,但我假设allprojects项目级别中存在不正确的给定build.gradle?)

2)我的依赖项列在应用程序级别dependencies.androidTestImplementation(见上文)

3)添加useLibrary 'android.test.runner'android我的应用程序的部分build.gradle

4)添加<uses-library android:name="android.test.runner" android:required="false" />到应用程序AndroidManifest.xml(说明看起来可能不需要,因为我正在使用 gradle 运行测试)

作为参考,不包括整个测试,这是我的设置的说明性示例:

谁能帮我重新启动这些测试并运行?谢谢!

0 投票
2 回答
241 浏览

android - 使用 Espresso 时在 SearchView 上测试文本提交

如何SearchViewandroidTest中提交一些文本?

onView(withId(R.id.search_src_text)).perform(typeText("text"))对我不起作用 - 应用程序在此行崩溃

androidx.test.espresso.NoMatchingViewException:层次结构中找不到匹配的视图:id:com.example.test:id/search_src_text

0 投票
0 回答
501 浏览

android - 运行测试时在 IntrumentationRegistry 上出现 ClassNotFoundException

我的应用程序中有一个实用程序类,它将用户数据从服务器保存到 SharedPreferences。我试图测试名为的实用程序类UserLocalStore.kt

我编写了以下测试类来做到这一点:

当我运行测试方法时,我得到一个ClassNotFoundException. 我在这里做错了什么?

完整的错误信息如下:

我认为我的依赖项设置正确,因为我的项目应用程序级别中有以下测试依赖项build.gradle

0 投票
1 回答
203 浏览

android - 如果条件失败,如何跳过测试 Junit (Instrumentation) 测试 Android

我正在为设备测试编写测试用例,其中我必须检查一些 Wifi、消息、摄像头和音频 API,但前提是设备具有该功能

例子 :

但是只有当我的设备能够使用消息功能时,才应该执行此测试方法

仅当 isCapable 返回 true 时才应执行测试,否则应忽略或跳过它

如何编写这样的测试类

请有人帮助

0 投票
1 回答
45 浏览

android - 如何在方法内对新创建的对象进行单元测试?

我有PayWorkOrder()方法的PaymentPresenter。该方法接受一些参数并基于逻辑创建了两个新对象:

  1. Wo支付
  2. 支付请求

这是代码:

这是我的单元测试:

但它因以下堆栈跟踪而失败:

java.lang.NullPointerException 在 com.test.presentation.agreements.payment.PaymentPresenter.payWorkOrderInvoice(PaymentPresenter.java:168) 在 com.test.presentation.agreements.PaymentPresenterTest.shouldPayWorkOrderInvoice(PaymentPresenterTest.java:175) 在 sun.reflect。 NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method. java:498) at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:310) at org .junit.internal.runners。MethodRoadie$2.run(MethodRoadie.java:89) at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:97) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl .java:294) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:127) at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47Method.access$100 PowerMockJUnit47RunnerDelegateImpl.java:59) 在 org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner$LastRuleTestExecutorStatement.evaluate(PowerMockJUnit47RunnerDelegateImpl.java:148) 在 com.test.presentation.core.TrampolineSchedulerRule$1.evaluate(TrampolineSchedulerRule.java:21)

0 投票
1 回答
263 浏览

android - AndroidJUnit4ClassRunner 抛出 RuntimeException Android

我正在开发一个 Android 应用程序。我正在为 android 编写 Junit 测试,我是 Junit 测试用例的新手。

在应用程序内我有一个相对布局,点击我打开日期选择器对话框,一旦用户选择我在 TextView 中显示的日期。

我想用 Junit 测试这些操作。当我尝试运行测试用例时,它会抛出以下错误:

这是我的测试课:

我也试过这些代码在里面运行,runOnUiTHeard()但问题仍然存在。

我也试过这些代码在里面运行,Handler()但测试将继续运行,不显示任何输出

我错过了什么吗?

0 投票
3 回答
18136 浏览

android - Mockito lenient() 何时使用

据我了解,使StrictStubbinglenient引发的异常静音。基于此,不应该使用,可能只是在执行 TDD 时临时使用,因为严格的存根异常通常意味着您的代码要么错误,要么测试设计不当,要么您添加了不必要的行。lenient

是否存在lenient实际需要或对测试有用的实际场景?