2012-01-22 2 views
1

Akka 액터를 사용하고 sbt에서 실행되는 ScalaTest 테스트 슈트를 작성하고 싶습니다. 나는이 할 때 :Scalatest FunSuite and Akka Actors

class Tests extends FunSuite with BeforeAndAfterAll { 
    override protected def beforeAll() { 
    class Actor1 extends Actor { 
     protected def receive = { 
     case 1 => println("One") 
     } 
    } 
    val sys = ActorSystem("my") 
    val a = sys.actorOf(Props[Actor1], "plain_actor") 
    a ! 1 
    sys.shutdown() 
    } 
} 

다음 sbt test을, 내가

[ERROR] [01/22/2012 12:49:50.329] [default-dispatcher10] [akka://my/user/plain_actor] error while creating actor 

을 얻을하지만 대신 FunSuite의 일반적인 기본 클래스에서 같은 코드를 작성하고, sbt run하여 실행하면, 모든 작품. 이 두 가지 경우의 차이점은 무엇이며, Akka 액터가 테스트 스위트에서 올바르게 실행되게하려면 어떻게해야합니까?

답변

2

Prop [X]를 사용하는 경우 X는 newInstance를 사용하여 인스턴스화 할 수 있어야합니다. 이는 메소드에서 내부적으로 선언 한 경우가 아닙니다.

패키지 또는 객체에서 Actor 클래스를 정의하거나 Props (새 Actor1)를 사용합니다.