Написание тестируемого Finagle Resolver
Я хотел бы проверить Finagle Resolver должным образом.
Давайте возьмем пример кода:
import com.twitter.finagle.{Addr, Address, Resolver}
import com.twitter.util._
class DummyResolver extends Resolver {
override val scheme: String = "sample"
override def bind(arg: String): Var[Addr] = {
val delegate = SomeFactory.fromArgs(arg).build()
Var.async(Addr.Pending: Addr)(u => addrOf(u)(delegate))
}
}
Использование статической фабрики не позволяет мне выполнить модульное тестирование распознавателя.
Насколько я знаю, единственный способ предоставить решатель для Finagle это объявить его в com.twitter.finagle.Resolver
файл в META-INF/services
, Таким образом, я не могу предоставить экземпляр самостоятельно.
Учитывая эти ограничения, как спроектировать распознаватель либо:
- быть в состоянии предоставить экземпляр
delegate
, - или быть в состоянии правильно проверить поведение (и издеваться над делегатом)?