У меня есть тест, который периодически дает сбой из-за проблем с упорядочением, когда я перебираю значения в Map
.
. В Scala полезно предоставить ListMap
, который делает тесты стабильными за счет производительности.,Поэтому я абстрагировал ImmutableMapFactory
в качестве значения val и использовал его в своем коде.
class C {
val immutableMapFactory = scala.collection.immutable.Map
def func = {
...
immutableMapFactory(pairs :_*)
}
}
Теперь я планировал расширить C и переопределить immutableMapFactory
для тестов
class TestableC extends C {
override val immutableMapFactory = scala.collection.immutable.ListMap
}
Неудивительноэто терпит неудачу, поскольку ListMap
не имеет тот же тип, что и Map
.Как мне указать тип val (или def), чтобы я мог использовать фабрику везде, где мне нужно создать карту?