Повторное использование параметров ожидания в Scala Specs2

Предположим, я тестирую результаты Futures (см. ниже) с specs2.

def f1():Future[String] = {...}
def f2():Future[String] = {...}

У меня есть Matchers[String], чтобы проверить результаты

def m1():Matcher[String] = {...}
def m2():Matcher[String] = {...}

Теперь я могу использовать implicits для создания Matcher[Future[String]].

def fm1():Matcher[Future[String]] = m1.await(retries=2, timeout=2.seconds)
def fm2():Matcher[Future[String]] = m2.await(retries=2, timeout=2.seconds)   

Пока все хорошо, но мне не нравится это повторение retries = 2 и timeout = 2.seconds. Как определить их один раз и повторно использовать во всех вызовах await в спецификации?


person Michael    schedule 02.01.2014    source источник
comment
Вероятно, добавление неявного класса (~ метод расширения) с неявными параметрами?   -  person Gábor Bakos    schedule 02.01.2014


Ответы (1)


person    schedule
comment
Я думаю, было бы лучше, если бы неявные параметры имели новый тип, например, класс case Retry(r: Int) и класс case AwaitDuration(t: Duration). Таким образом, он не может влиять на другие части, которые не предназначены для этих неявных значений. - person Gábor Bakos; 03.01.2014
comment
@Michael: отредактировал мой пост. - person Marth; 04.01.2014