在我的多语言应用程序中,我编写了两个工具测试来检查按钮的标题。
fun viewWithId(@IdRes id: Int): ViewInteraction = Espresso.onView(ViewMatchers.withId(id))
@RunWith(AndroidJUnit4::class)
class FeedbackActivityTest {
@get:Rule
var addTraderIntentTestRule: IntentsTestRule<FeedbackActivity> =
IntentsTestRule(FeedbackActivity::class.java)
private val buttonSend = viewWithId(R.id.buttonSend)
@Test
fun buttonSend_title_en() {
buttonSend
.check(matches(withText("Send")))
}
@Test
fun buttonSend_title_ru() {
buttonSend
.check(matches(withText("Отправить")))
}
设备的语言为英语。如果我仅开始测试buttonSend_title_en()
,则测试通过。但是,如果我开始测试buttonSend_title_ru()
,则会失败(因为当前的语言是英语)。
好。要解决此问题,我必须手动将设备的语言更改为俄语,然后再次仅 buttonSend_title_ru()
。现在通过了,但是... buttonSend_title_en()
失败了。
在实际项目中,我有50多个测试。而且我不想每次都手动更改设备的语言。成功通过所有测试是否有可能?