Тест не проходит

300
21 января 2017, 10:57

Есть вспомогательный класс DialogIdlingResource, благодаря которому пытаюсь запустить свои тесты, все тесты проходят за исключением этого запускается активити и доходит до шага нажатия на кнопку:

AcceptanceHelper.clickOnButtonInLayout(R.id.mainSignButton, R.string.common_signin_button_text, R.id.inputLayout)

, после чего всё замирает, хотя тест по идее должен отрабатывать(а именно проверять текст в методе isDialogRunning):

@Test
fun signInUserWithInvalidEmail() {
    goToSignIn()
    AcceptanceHelper.updateValidationTextView(R.string.ui_data_attribute_email, "kokojambo@mail.ru")
    AcceptanceHelper.updateValidationTextView(R.string.ui_data_attribute_password, VALID_PASSWORD)
    AcceptanceHelper.clickOnButtonInLayout(R.id.mainSignButton, R.string.common_signin_button_text, R.id.inputLayout)
    val idlingResource = DialogIdlingResource()
    registerDialogIdlingResource()
    unregisterDialogIdlingResource()
}
    private fun registerDialogIdlingResource() {
    val instrumentation = InstrumentationRegistry.getInstrumentation()
    idlingResource = DialogIdlingResource()
    Espresso.registerIdlingResources(idlingResource)
}

private fun unregisterDialogIdlingResource() {
    Espresso.unregisterIdlingResources(idlingResource)
}

Предпологаю что ошибка из за двух методов регистрации и UNрегистрации idlingResource

Но по сути всё должно работать, но может быть где то, что скорей всего сделал ошибку, код вспомогательного класса:

class DialogIdlingResource(private val waitTimeSeconds: Int = 5) : IdlingResource {
private var resourceCallback: IdlingResource.ResourceCallback? = null
private var startTime = -1L
override fun getName(): String {
    return DialogIdlingResource::class.java.name
}
override fun isIdleNow(): Boolean {
    if (startTime < 0) {
        startTime = System.currentTimeMillis()
    }
    val timeOut = System.currentTimeMillis() - waitTimeSeconds * 1000 > startTime
    if (timeOut)
        throw TimeoutException("error")
    val idle = !isDialogRunning
    if (idle && resourceCallback != null) {
        resourceCallback!!.onTransitionToIdle()
    }
    return idle
}
override fun registerIdleTransitionCallback(resourceCallback: IdlingResource.ResourceCallback) {
    this.resourceCallback = resourceCallback
}
private val isDialogRunning: Boolean
    get() {
        try {
            onView(Matchers.allOf(withId(R.id.titleTextView), ViewMatchers.withText("Warning")))
                    .check(ViewAssertions.matches(isDisplayed()))
        } catch (e: NoMatchingViewException) {
            e.printStackTrace()
            System.out.println("some text")
        }
        return true
    }

}

READ ALSO
Создание библиотеки. Не могу понять, как предоставить возможность ее использовать

Создание библиотеки. Не могу понять, как предоставить возможность ее использовать

ЗдравствуйтеНаписал библиотеку с анимациями, своими классами, методами и т

398
Undefined step при запуске тестов на русском

Undefined step при запуске тестов на русском

Пытаюсь писать тесты на русском в cucumber javaЕсть

429
Google карта не реагирует на android &gt; 5

Google карта не реагирует на android > 5

Использую Google карты в своем приложении и при компиляции на android 44

326
Что за тип Class в Java?

Что за тип Class в Java?

Искал в интернете, но не нашел статей, чтобы разобраться что это за тип Class и с чем его едятЧто это за тип такой-то?

365