Espresso - 如何将typeText切换为英语或其他语言输入模式

时间:2016-04-03 07:10:10

标签: android android-testing ui-testing android-espresso

我使用Espresso来实现我的应用程序的自动测试框架。但在我设计的一些测试用例中,我发现我的测试总是失败,根本原因不在于我的测试代码中的功能实现代码。根本原因是在android输入法模式下,有时,它在中文输入模式下,而我的输入文本是英文,那么输入值将失败。所以我想知道如何将当前的typeText输入法模式从中文切换到英文,或者如何确保输入法模式是英文而无需手动配置? 我相信这是一个重要的要求,因为当我们在应用程序中支持多种语言时,我们需要此功能在测试期间自动切换到所需的语言。 以下是我的代码,如果默认输入模式是英语,则没有任何问题。

    onView(withId(R.id.entryWordInput))
        .perform(typeText(entryWord), closeSoftKeyboard());
    onView(withId(R.id.OkButton))
        .perform(click());

提前致谢。

1 个答案:

答案 0 :(得分:2)

使用Espresso更改输入模式语言是不可能的。您需要将其与另一个名为uiautomator的Google UI测试框架一起使用。

请在类似的测试问题上查看我的回答:Espresso test for Notification to showing up

  

Espresso UI测试框架并不仅仅看到实际的View。我怀疑   严重的是,您可以使用Espresso检查任何通知。

     

为此目的,使用另一个Google视图测试框架uiautomator,   这被描述为:

     
    

UI Automator是一个UI测试框架,适用于跨系统和已安装应用程序的跨应用程序功能UI测试。

  
     

在这里,您将了解如何将其与Espresso一起使用:   http://qathread.blogspot.com/2015/05/espresso-uiautomator-perfect-tandem.html

     更多信息:            

也参观:   Android Testing: UIAutomator vs Espresso

因此,如果您想更改输入模式的语言,请尝试同时使用uiautomator更改Android系统偏好设置,并使用Espresso进行应用测试。

希望它有所帮助。