Scala
、Akka
およびを含むエコシステム全体に不慣れです。ScalaTest
Actor
外部システムへの呼び出しを行う問題に取り組んでいます。
case object LogProcessRequest
class LProcessor extends Actor {
val log = Logging(context.system, this)
def receive = {
case LogProcessRequest =>
log.debug("starting log processing")
LogReaderDisruptor main(Array())
}
}
はLogReaderDisruptor main(Array())
、Java
他の多くのことを行うクラスです。
私が現在持っているテストは次のようになります
class LProcessorSpec extends UnitTestSpec("testSystem") {
"A mocked log processor" should {
"be called" in {
val logProcessorActor = system.actorOf(Props[LProcessor])
logProcessorActor ! LogProcessRequest
}
}
}
どこUnitTestSpec
のように見えますか(そしてここからインスピレーションを得ました)
import akka.actor.ActorSystem
import akka.testkit.{ImplicitSender, TestKit}
import org.scalatest.matchers.MustMatchers
import org.scalatest.{BeforeAndAfterAll, WordSpecLike}
abstract class UnitTestSpec(name: String)
extends TestKit(ActorSystem(name))
with WordSpecLike
with MustMatchers
with BeforeAndAfterAll
with ImplicitSender {
override def afterAll() {
system.shutdown()
}
}
質問
- 呼び出しをモックして
LogReaderDisruptor main(Array())
、それが呼び出されたことを確認するにはどうすればよいですか?
私は、、土地から来て、Java
ここで私がしたであろうことは JUnit
Mockito
doNothing().when(logReaderDisruptor).main(Matchers.<String>anyVararg())
verify(logReaderDisruptor, times(1)).main(Matchers.<String>anyVararg())
ここで ScalaTest を使用してそれを翻訳する方法がわかりません。
また、私は非常に新しく学習しているので、このコードは慣用的ではないかもしれません