Memoization запоминает (кэширует) результат вызова функции с заданным набором значений параметров, так что если эта же функция вызывается снова с теми же значениями параметров, кешированный результат будет возвращен, вместо того, чтобы повторно запускать функция. Это метод оптимизации.
См. Дополнительную информацию здесь: https://en.wikipedia.org/wiki/Memoization
Так что в приведенном выше примере Spek упаковывает вызов для создания Calculator
в его memoized
функция, означающая, что она будет создавать ее только один раз, и после этого вызовы calculator
будут повторно использовать этот существующий экземпляр. И с точки зрения того, как вы обычно будете использовать его в тесте, это даст вам то же поведение, что и при создании нового Calculator
в beforeEachTest
, но более кратким образом.