Написание тестируемого 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,
  • или быть в состоянии правильно проверить поведение (и издеваться над делегатом)?

0 ответов

Другие вопросы по тегам