Я пытаюсь написать спецификацию для чего-то, использующего фьючерсы, и я не уверен, как я должен использовать черту Futures
. Мне нужно передать whenReady
a FutureConcept
, но я не могу найти, как я должен построить его из Future
. Документация гласит:
Чтобы сделать, когдаReady более широко применим, тип будущего accepts - это FutureConcept [T], где T - тип обещанной стоимости к будущему. Передача будущего, когда Ready требует неявного преобразование из будущего, которое вы хотите пройти (модельный тип) к FutureConcept [T].
Из этого я понимаю, что мне нужно написать неявное преобразование между Future
и a FutureConcept
(что кажется мне неправильным, поскольку, похоже, это должно быть шаблоном, но это единственное, что я могу сделать из него). Я не могу понять, как это сделать, но документация FutureConcept мне очень удобно.
См. документацию по признаку Futures для подробностей синтаксиса эта черта обеспечивает тестирование с использованием фьючерсов.
заставляя меня прийти в полный круг. Самый простой пример, который я приготовил, -
import scala.concurrent._
import scala.concurrent.ExecutionContext.Implicits.global
import org.scalatest.WordSpecLike
import org.scalatest.concurrent._
class FutureSpec extends WordSpecLike with Futures {
"A future" must {
"be a valid argument for whenReady" in {
val fut = future { 42 }
whenReady(fut) { res => s should be 42 }
}
}
}
Это не компилируется с помощью
- несоответствие типов; найдено: scala.concurrent.Future [Int] требуется: FutureSpec.this.FutureConcept [?]
- ';' ожидаемый, но целочисленный литерал.
что я должен делать по-другому?