如何使用Espresso测试Android暗黑模式

4
什么是在Android上使用Espresso测试不同DayNight主题的最佳方法?(或者更好的东西?)我在网上没有找到任何东西。我认为这一定是因为现在所有的东西都迁移到了DayNight。
我想知道像“当我点击这个按钮时,我的活动主题是否改变”或“我有这个背景和这个文本,对比度是否正确”的事情。
提前致谢。

1
问题的一个方面是通过Espresso代码程序化地确定操作系统设置中是否开启了暗黑模式。为此,您可以使用context?.resources?.configuration?.uiMode来确定暗黑模式的状态(来源:https://dev59.com/slcP5IYBdhLWcg3wlq73)。 - Michael Osofsky
1个回答

3
我发现这个有效:

    @get:Rule
    val activityTestRule = ActivityScenarioRule(...Activity::class.java)

    private fun createActivityScenarioRule(withNightMode: Boolean = false) =
        activityTestRule.scenario.apply {
            onActivity {
                AppCompatDelegate.setDefaultNightMode(
                    if (withNightMode) AppCompatDelegate.MODE_NIGHT_YES
                    else AppCompatDelegate.MODE_NIGHT_NO
                )
            }
        }

它似乎对我不起作用。 - Abdelrhman Talat
你的模拟器是否支持暗黑模式?你使用了AppCompat吗?你调用了函数吗? - Quintin Balsdon
是的,是的和是的。 - Abdelrhman Talat
您有一些样例代码吗? - Quintin Balsdon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接