Vitali Plagov
03/21/2023, 11:39 AMopen class BaseTest {
lateinit var browser: Browser
lateinit var page: Page
@BeforeEach
fun setUp() {
browser = Playwright.create().chromium().launch()
page = browser.newPage()
}
}
But I don't like to use a mutable lateinit var
modifiers. How can I turn these two into immutable variables? Using lazy
? But then the variable will be initialized only once.Sam
03/21/2023, 11:46 AMlateinit
variables, even though I wouldn’t use them elsewhere. But an alternative would be to use a higher-order-function to do the test setup, something like this:
class TestSuite {
private fun withPage(block: (Page) -> Unit) {
val browser = Playwright.create().chromium().launch()
val page = browser.newPage()
block(page)
}
@Test
fun myTest() = withPage { page ->
doStuffWith(page)
}
}
Vitali Plagov
03/21/2023, 12:26 PM