当前位置: 首页>>代码示例>>Scala>>正文


Scala TestActor类代码示例

本文整理汇总了Scala中akka.testkit.TestActor的典型用法代码示例。如果您正苦于以下问题:Scala TestActor类的具体用法?Scala TestActor怎么用?Scala TestActor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了TestActor类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Scala代码示例。

示例1: FakeCluster

//设置package包名称以及导入依赖的类
import akka.actor.{ActorRef, ActorSystem, Props}
import akka.cluster.sharding.ShardRegion._
import akka.testkit.TestActor.AutoPilot
import akka.testkit.{TestActor, TestProbe}

class FakeCluster(
                   name: String,
                   system: ActorSystem,
                   propsFactory: Unit => Props,
                   extractEntityId: Msg => (EntityId, Msg)
                 ) {
  private implicit val s = system

  private val probe = TestProbe(name)
  private val refs = scala.collection.mutable.Map.empty[String, ActorRef]

  probe.setAutoPilot(new AutoPilot {
    override def run(sender: ActorRef, msg: Any): AutoPilot = {
      val (id, _) = extractEntityId(msg)
      val item = refs.getOrElseUpdate(id, system.actorOf(propsFactory(()), id))
      item.tell(msg, sender)
      TestActor.KeepRunning
    }
  })

  def ref = probe.ref
}

object FakeCluster {
  def apply(
             name: String,
             propsFactory: Unit => Props,
             extractEntityId: Msg => (EntityId, Msg)
           )(implicit system: ActorSystem) = new FakeCluster(name, system, propsFactory, extractEntityId)
} 
开发者ID:ColinScott,项目名称:bathurst,代码行数:36,代码来源:FakeCluster.scala

示例2: StringStoreActorTest

//设置package包名称以及导入依赖的类
package com.example

import org.scalatest.FunSpec
import org.scalatest.Matchers
import org.scalatest.BeforeAndAfterEach
import akka.actor.ActorSystem
import akka.testkit.TestActor
import akka.testkit.TestActorRef
import com.chapter1.StringStoreActor

class StringStoreActorTest extends FunSpec with Matchers with BeforeAndAfterEach{
  describe("StringStoreActor") {
    it("should store the last string it received") {
      implicit val system = ActorSystem()
      val actorRef = TestActorRef(new StringStoreActor)
      actorRef ! "Hello"
      actorRef ! "Bye"
      val realActor = actorRef.underlyingActor;
      realActor.lastStringReceived should(equal("Bye"))
    }
  }
} 
开发者ID:avoiculet,项目名称:akkaHomework,代码行数:23,代码来源:StringStoreActorTest.scala

示例3: RoutingServiceSpec

//设置package包名称以及导入依赖的类
package com.ganchurin.currency.rest

import akka.actor.ActorRef
import akka.testkit.TestActor.AutoPilot
import akka.testkit.{TestActor, TestProbe}
import com.ganchurin.currency.domain.Quote
import com.ganchurin.currency.message.QuoteRequest
import org.specs2.mutable.Specification
import spray.testkit.Specs2RouteTest

class RoutingServiceSpec extends Specification with Specs2RouteTest {

	"Rest service" should {

		"Print empty json when quote is not available" in {
			val service = new TestService()

			Get("/quote/USD") ~> service.route ~> check {
				responseAs[String] must contain("{}")
			}
		}

		"Print json when quote is available" in {
			val service = new TestService()

			Get("/quote/EUR") ~> service.route ~> check {
				responseAs[String] must contain("""{"code":"EUR","bid":75.0,"offer":85.0}""")
			}
		}
	}

	class TestService extends RoutingService {
		def actorRefFactory = system
		val currencyBoardActor = TestProbe("currency-board")
		val autoPilot = new AutoPilot {
			def run(sender: ActorRef, msg: Any): AutoPilot = msg match {
				case QuoteRequest("USD") =>
					sender ! Option.empty[Quote]
					TestActor.KeepRunning
				case QuoteRequest("EUR") =>
					sender ! Some(Quote("EUR", 75.0, 85.0))
					TestActor.NoAutoPilot
			}
		}
		currencyBoardActor setAutoPilot autoPilot
		val quoteBoard = currencyBoardActor.ref
	}

} 
开发者ID:ganchurin,项目名称:reactive-prototype,代码行数:50,代码来源:RoutingServiceSpec.scala


注:本文中的akka.testkit.TestActor类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。