Play 2.5.x 和 Akka 2.4.7 中构造函数 MyWebSocketActor 的参数太多
too many arguments for constructor MyWebSocketActor in Play 2.5.x and Akka 2.4.7
class MyWebSocketActorTest extends Specification with Mockito {
val system = ActorSystem("MockActorSystem")
val mockMap : Map[ActorRef , String] = Map()
val mockCache = mock[CacheApi]
val actor1 = system.actorOf(Props[ChatActor],"actor1")
val actor2 = system.actorOf(Props[ChatActor],"actor2")
"MyWebSocketActor receive function" should {
"have username key" in {
val testActor = system.actorOf(Props(new MyWebSocketActor(actor1 , actor2, mockCache , mockMap)))
val testMsg1 = Json.parse("""{"message":"Testing Message 2","conn_status":2,"pub_key":"empty","target":"all"}""")
testActor ! testMsg1
}
}
}
我正在使用 Akka 2.4.7 在 Play 2.5.3 和 Scala 中工作。我有一个 class 看起来像这样 class MyWebSocketActor(out:ActorRef,postActor:ActorRef,cache:CacheApi,postActorToUsernameMap:Map[ActorRef,String]) extends Actor
我想为这个 class 创建一个 actor 并调用它的接收函数。我也按照 link 中的建议进行了尝试。但每次它都会给我错误:-
构造函数 MyWebSocketActor 的参数太多:()test.MyWebSocketActor
我做错了什么?
您的演员 MyWebSocketActor
正被您的测试服遮挡。将您的测试 class 更改为 MyWebSocketActor
以外的内容,例如 MyWebSocketActorTest
class MyWebSocketActorTest extends Specification with Mockito {
val system = ActorSystem("MockActorSystem")
val mockMap : Map[ActorRef , String] = Map()
val mockCache = mock[CacheApi]
val actor1 = system.actorOf(Props[ChatActor],"actor1")
val actor2 = system.actorOf(Props[ChatActor],"actor2")
"MyWebSocketActor receive function" should {
"have username key" in {
val testActor = system.actorOf(Props(new MyWebSocketActor(actor1 , actor2, mockCache , mockMap)))
val testMsg1 = Json.parse("""{"message":"Testing Message 2","conn_status":2,"pub_key":"empty","target":"all"}""")
testActor ! testMsg1
}
}
}
我正在使用 Akka 2.4.7 在 Play 2.5.3 和 Scala 中工作。我有一个 class 看起来像这样 class MyWebSocketActor(out:ActorRef,postActor:ActorRef,cache:CacheApi,postActorToUsernameMap:Map[ActorRef,String]) extends Actor
我想为这个 class 创建一个 actor 并调用它的接收函数。我也按照 link
构造函数 MyWebSocketActor 的参数太多:()test.MyWebSocketActor
我做错了什么?
您的演员 MyWebSocketActor
正被您的测试服遮挡。将您的测试 class 更改为 MyWebSocketActor
以外的内容,例如 MyWebSocketActorTest