我如何在 Kotlin 中管理资源?尝试使 setUp 函数 运行 仅一次,而不是在每次测试之前

How do i manage resources in Kotlin ? Trying to make the setUp function run only once not before every test

我只想 运行 setUp 函数一次,而不是在 class 的每次测试之前。我试图使设置功能静态化,但出现错误 - 未解决的参考


@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))
    }

您需要在 Kotlin 中使用@get:Rule

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

虽然建议让测试彼此完全独立,但有些事情您无法承受重新设置的代价。

您要查找的是 @BeforeClass (JUnit 4)。

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