You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.4 KiB
Kotlin
44 lines
1.4 KiB
Kotlin
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
package org.mozilla.fenix.helpers
|
|
|
|
import io.mockk.every
|
|
import io.mockk.mockkObject
|
|
import io.mockk.unmockkObject
|
|
import org.junit.rules.TestWatcher
|
|
import org.junit.runner.Description
|
|
import org.mozilla.fenix.perf.NavGraphProvider
|
|
|
|
/**
|
|
* Disables the call order assertions defined by the [NavGraphProvider] for use in testing.
|
|
* This is necessary because unit tests generally don't follow the application lifecycle and thus
|
|
* call the methods out of order, causing an assertion to be thrown unexpectedly. You may need to
|
|
* apply this rule if you see the following exception in your test:
|
|
*
|
|
* Unfortunately, JUnit 4 discourages setting test state globally so we apply this to each test that
|
|
* has the failure rather than disabling it globally.
|
|
*/
|
|
class DisableNavGraphProviderAssertionRule : TestWatcher() {
|
|
|
|
// public for code reuse.
|
|
fun setUp() {
|
|
mockkObject(NavGraphProvider)
|
|
every { NavGraphProvider.blockForNavGraphInflation(any()) } returns Unit
|
|
}
|
|
|
|
// public for code reuse.
|
|
fun tearDown() { //
|
|
unmockkObject(NavGraphProvider)
|
|
}
|
|
|
|
override fun starting(description: Description?) {
|
|
setUp()
|
|
}
|
|
|
|
override fun finished(description: Description?) {
|
|
tearDown()
|
|
}
|
|
}
|