1
0
Fork 0
fenix/app/src/test/java/org/mozilla/fenix/helpers/FenixRobolectricTestRunner.kt

36 lines
1.6 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 org.robolectric.RobolectricTestRunner
/**
* A test runner that was added to start Robolectric with our custom configuration for use in unit tests.
*
* This class is now deprecated as the configuration is set by robolectric.properties instead.
* You should only use Robolectric when necessary because it non-trivially increases test duration.
*
* usage:
* ```
* @RunWith(FenixRobolectricTestRunner::class)
* class ExampleUnitTest {
* ```
*
* There were three common test runners before this patch:
* 1. The default (@RunWith not specified) = JUnit4
* 2. @RunWith(RobolectricTestRunner::class) = JUnit4 with support for the Android framework via Robolectric
* 3. @RunWith(AndroidJUnit4::class) = JUnit4 with support for the Android framework. This currently
* delegates to Robolectric but is presumably generically named so that it can support different
* implementations in the future. The name creates confusion on over the difference between this and
* JUnit without any Android support (1).
*
* We chose the name RobolectricTestRunner because we want folks to know they're starting Robolectric
* because it increases test runtime. Furthermore, the naming of 3) is unclear so we didn't want to
* use that name.
*
* As a result, new tests should use RobolectricTestRunner.
*/
class FenixRobolectricTestRunner(testClass: Class<*>) : RobolectricTestRunner(testClass)