Add example of testing actors with subclassing (#24539)
This commit is contained in:
parent
3bd3f00c41
commit
f2e39c7534
3 changed files with 97 additions and 1 deletions
|
|
@ -69,6 +69,22 @@ object TestKitDocSpec {
|
|||
|
||||
//#test-probe-forward-actors
|
||||
|
||||
//#timer
|
||||
case class TriggerScheduling(foo: String)
|
||||
|
||||
object SchedKey
|
||||
case class ScheduledMessage(foo: String)
|
||||
|
||||
class TestTimerActor extends Actor with Timers {
|
||||
override def receive = {
|
||||
case TriggerScheduling(foo) ⇒ triggerScheduling(ScheduledMessage(foo))
|
||||
}
|
||||
|
||||
def triggerScheduling(msg: ScheduledMessage) =
|
||||
timers.startSingleTimer(SchedKey, msg, 500.millis)
|
||||
}
|
||||
//#timer
|
||||
|
||||
class LoggingActor extends Actor {
|
||||
//#logging-receive
|
||||
import akka.event.LoggingReceive
|
||||
|
|
@ -277,6 +293,22 @@ class TestKitDocSpec extends AkkaSpec with DefaultTimeout with ImplicitSender {
|
|||
//#test-probe-forward
|
||||
}
|
||||
|
||||
"demonstrate using inheritance to test timers" in {
|
||||
//#timer-test
|
||||
import akka.testkit.TestProbe
|
||||
import akka.actor.Props
|
||||
|
||||
val probe = TestProbe()
|
||||
val actor = system.actorOf(Props(new TestTimerActor() {
|
||||
override def triggerScheduling(msg: ScheduledMessage) =
|
||||
probe.ref ! msg
|
||||
}))
|
||||
|
||||
actor ! TriggerScheduling("abc")
|
||||
probe.expectMsg(ScheduledMessage("abc"))
|
||||
//#timer-test
|
||||
}
|
||||
|
||||
"demonstrate calling thread dispatcher" in {
|
||||
//#calling-thread-dispatcher
|
||||
import akka.testkit.CallingThreadDispatcher
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue