Как мне управлять ресурсами в Котлине?Попытка заставить функцию setUp запускаться только один раз, а не перед каждым тестом - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу запускать функцию setUp только один раз, а не перед каждым тестом из класса.Я пытался сделать функцию setUp статической, но я получил ошибку - неразрешенная ссылка


@RunWith(AndroidJUnit4::class)
@LargeTest
open class BaseTest {

    @Rule
    val activityRule = ActivityTestRule(HomeActivity::class.java)




Class that inherits Base test class

@RunWith(AndroidJUnit4::class)
@LargeTest
open class HomeScreenWithoutInternet : BaseTest() {


    private lateinit var context: HomeActivity
    @Before
    open fun setUp() {
        context = activityRule.activity  // "Unresolved reference: activityRule"
        val wifiManager = context.getSystemService(Context.WIFI_SERVICE) as WifiManager
        wifiManager.isWifiEnabled = false
        TimeUnit.SECONDS.sleep(5)
        assertFalse("There is internet connection available", isConnected(context))
    }

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

Вам необходимо использовать @get: Rule in Kotlin

@get:Rule
val activityRule = ActivityTestRule(HomeActivity::class.java)
0 голосов
/ 19 сентября 2019

Хотя рекомендуется сохранять тесты полностью независимыми друг от друга, есть вещи, которые вы просто не можете позволить перенастроить.

То, что вы ищете, это @BeforeClass (JUnit 4).

https://www.baeldung.com/junit-before-beforeclass-beforeeach-beforeall

...