行政室3.3。
在我的应用程序中,我使用Retrofit来执行http请求。此外,我还使用MockWebServer返回存根响应。
在活动中,当我单击按钮时,我启动异步 http请求(由Retrofit)并等待回调方法返回响应。在这里,Espresso的测试:
@RunWith(AndroidJUnit4::class)
class AddTraderActivityTest {
@get:Rule
var addTraderIntentTestRule: IntentsTestRule<AddTraderActivity> = IntentsTestRule(AddTraderActivity::class.java)
@Before
fun setup() {
mockServer = MockWebServer()
mockServer.start(8081)
Debug.d(TAG, "SUCCCESS_START_MOCKWEBSRVER")
}
@Test
fun buttonStart_click_longResponse() {
// stub response
mockServer.enqueue(MockResponse()
.setResponseCode(200)
.setBody(FileUtil.getStringFromFile(context, "add_trader_success_200.json"))
.setBodyDelay(5000, TimeUnit.MILLISECONDS))
onView(withId(R.id.baseTextInputEditText))
.perform(typeText(BASE_TEST))
onView(withId(R.id.quoteTextInputEditText))
.perform(typeText(QUOTE_TEST))
onView(withId(R.id.startButton))
.perform(click())
onView(withText(R.id.containerProgressBarLayout))
.check(matches(isDisplayed()))
}
但问题是,在执行perform(click()
时,check
方法直到未得到存根响应(5秒后)才被调用。
但是,我需要调用方法check
立即后面的perform(click()
方法。因为我需要check
是containerProgressBarLayout
是isDisplayed()
,而不是返回存根响应。在加载数据期间,我需要检查视图
我怎么能这么做?
https://stackoverflow.com/questions/55994181
复制相似问题