3

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.ResolverMETA-INF/services. したがって、自分でインスタンスを提供することはできません。

これらの制約を考慮して、リゾルバーを次のいずれかに設計する方法:

  • delegateのインスタンスを提供できる
  • または動作を適切にテストする (そしてデリゲートをモックする) ことができますか?
4

0 に答える 0