Tag: ui testing

如何检测Android应用程序是否正在用Espresso进行UI测试

我正在为Android编写一些Espresso测试。 我正在运行在以下问题: 为了使某个测试用例正常运行,我需要禁用应用程序中的某些功能。 因此,在我的应用程序中,我需要检测是否正在运行Espresso测试,以便禁用它。 但是,我不想使用BuildConfig.DEBUG ,因为我不希望这些功能在调试版本中被禁用。 另外,我想避免创建一个新的buildConfig来避免创建太多的构建变体(我们已经定义了很多的变体)。 我正在寻找一种方法来定义buildConfigField进行测试,但是我在Google上找不到任何参考。

用MVP + Dagger进行Android测试2

我使用依赖注入框架Dagger 2使用模式MVP创建Android应用程序。 应用程序具有用于将请求发送到REST的自定义IntentService。 每个活动都有自己的Dagger组件,用于提供包括Presenter(表示层)和Interactor(模型层)类的所有必需对象。 Presenter包含没有Android SDK的代码 – 只有逻辑。 Interactor可以启动IntentService来接收数据,包含ApplicationContext等 为了测试我的Java / Kotlin类,我使用了JUnit和我自己的模拟类。 对于使用Android SDK的Instrumented测试,我正在使用Espresso 。 这里是简单的测试我如何做(Kotlin): @RunWith(AndroidJUnit4::class) @MediumTest class SampleBehaviorTest : UiBehaviorTestBase() { @get:Rule val rule = IntentsTestRule<SampleActivity>(SampleActivity::class.java, true, false) @Inject lateinit var someService: SomeService @Before fun setUp() { (getApp().buildSampleComponent() as MockSimpleComponent).inject(this) val intent = Intent() rule.launchActivity(intent) } @Test fun should_display_trade_on_receive() { someService.doSomeJob() // Assert […]

Android Espresso – 如何查看视图在活动结束前匹配?

我正在编写使用Kotlin和Espresso进行UI测试的Android应用程序。 给定与按钮的活动。 通过点击那个按钮应该出现Toast消息与文本“你好#_#世界”和活动应该完成。 示例代码: fun onButtonClick() { Toast.makeText(this, "Hello#_#World", Toast.LENGTH_SHORT).show() finish() } 在UI测试中,我需要检查Toast消息的文本。 但是Activity在检查之前完成了,所以我从Espresso中捕获了NoActivityResumedException。 这是我的测试方法: @Test fun should_display_message_on_success() { onView(withId(R.id.test_button)).perform(click()) onView(withText("Hello#_#World")) .inRoot(withDecorView(not(rule.activity.window.decorView))) .check(matches(isDisplayed())) } 在活动完成之前如何调用#.check()方法?