При модульном тестировании, каков наилучший подход к отключению вызовов Akka Streams с использованием источников, потоков и приемников?
Например, takeWhile
function:
def takeWhile(p: Out => Boolean): Repr[Out]
Где Repr
- это черта внутри черты:
trait FlowOps[+Out, +Mat] {
import akka.stream.impl.Stages._
import GraphDSL.Implicits._
type Repr[+O] <: FlowOps[O, Mat] {
type Repr[+OO] = FlowOps.this.Repr[OO]
type Closed = FlowOps.this.Closed
}
Если тестируемый объект вызывает что-то вроде: mySource.takeWhile( ... ).runWith( ... )
Мне может понадобиться смоделировать это ...
Как вы работаете, как издеваться, например, mock[Source[Any, Any]].takeWhile(*) returns mock[?]
Взаимодействия между Source
, Repr
,FlowOps
и Out
неясны для меня.
Исходный код для FlowOps
черты предупреждает , что это внутреннее и что от него не следует извлекать ... это влияет на насмешку?