Spek 文档参考
As a best practice you typically want test values to be unique for each test this can be done by using a lateinit variable and assigning it within a beforeEachTest. lateinit var calculator: Calculator
beforeEachTest {
calculator = Calculator()
}
To make it more concise, Spek provides memoized to do the same thing:
val calculator by memoized { Calculator() }
到底记住了什么?
记忆是记住(缓存(具有一组给定参数值的函数调用的结果,以便如果使用相同的参数值再次调用同一函数,将返回缓存的结果,而不必重新运行该函数。这是一种优化技术。
在此处查看更多信息: https://en.wikipedia.org/wiki/Memoization
因此,在上面的示例中,Spek 将构造Calculator
的调用包装在其memoized
函数中,这意味着它只会构造一次,此后对calculator
的调用将重用该现有实例。就您通常在测试中如何使用它而言,这将给您与在beforeEachTest
中构建新Calculator
相同的行为,但方式更简洁。