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
のインスタンスを提供できる- または動作を適切にテストする (そしてデリゲートをモックする) ことができますか?