Обмен данными между тестами в kotlin spek framework - PullRequest
0 голосов
/ 19 июня 2020

возможно ли разделить состояние теста между тестами и группами, начатыми в одной основной группе в тесте spek2? Итак, у меня есть следующий тест:

internal object IntegrationTest : Spek({

        val testState by memoized(CachingMode.SCOPE) { TestState() }
        group("Test for ${level}") {

            assertThat(level).describedAs("The level have to be set").isNotNull()

            test("Login") {
                assertThat("test").isNotBlank()
                testState.state = "SUCCESS"
            }

            group("Test user profile") {
                assertThat("test2").isNotBlank()
                val username = getUsername()
                testState.username = ec2Username
            }
}

})

testState доступно в test ("Login") , но для группы ("Test профиль пользователя ") Я получаю ошибку:

'testState' can not be accessed in this context.
java.lang.AssertionError: 'testState' can not be accessed in this context.
    at org.spekframework.spek2.runtime.lifecycle.MemoizedValueAdapter.get(MemoizedValueAdapter.kt:33)
    at org.spekframework.spek2.runtime.lifecycle.MemoizedValueAdapter.getValue(MemoizedValueAdapter.kt:22)
    at com.advantest.swdp.cloudintegration.SWCIntegrationTest$1$1$1$2.invoke(IntegrationTest.kt:33)
    at com.advantest.swdp.cloudintegration.SWCIntegrationTest$1$1$1$2.invoke(IntegrationTest.kt:15)
    at org.spekframework.spek2.runtime.Collector.group(Collectors.kt:91)
...

Возможно ли вообще разделить состояние между тестами и группами? Что не так?

С уважением

...