写一个可测试的Finagle Resolver

时间:2017-03-07 10:53:50

标签: finagle twitter-finagle

我想正确测试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
  • 的实例
  • 或能够正确测试行为(并模拟委托)?

0 个答案:

没有答案