Я хочу запустить функцию настройки только один раз, а не перед каждым тестом в классе.
Я попытался сделать статическую функцию установки статической, но я получил ошибку - неразрешенная ссылка.
Если я сделаю ActivityRule в BaseClass статическим (с объектом-компаньоном), я не получаю эту ошибкуно когда я запускаю тест, я получаю, что контекст нулевой.
Каждый раз, когда я пытаюсь использовать context.findViewById, я получаю, что context.findViewById не должен быть нулевым.
//Base Class
@RunWith(AndroidJUnit4::class)
@LargeTest
open class BaseTest {
@get:Rule
val activityRule = ActivityTestRule(HomeActivity::class.java)
//Child class
@RunWith(AndroidJUnit4::class)
@LargeTest
open class HomeScreenWithoutInternet : BaseTest() {
companion object {
private lateinit var context: HomeActivity
@BeforeClass @JvmStatic fun setUp() {
context = activityRule.activity //HERE i get 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))
}
}
@Test
fun checkTextColorIsGray() {
val colorOfTvNetworkNameDisplayed =
context.findViewById<TextView>(R.id.tvNetworkName).currentTextColor
val contextColorOfTvNetworkName = context.getColor(R.color.text_dark_gray)
assertTrue(colorOfTvNetworkNameDisplayed == contextColorOfTvNetworkName)
}