• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Scala TestActor类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Scala TestSuite类代码示例发布时间:2022-05-23
下一篇:
Scala Updater类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap