1

Akka アクターを使用し、sbt から実行する ScalaTest テスト スイートを作成したいと考えています。私がこれをやろうとすると:

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、すべてが機能します。これら 2 つのケースの違いと、Akka アクターをテスト スイートで正しく実行するにはどうすればよいですか?

4

1 に答える 1

2

Prop[X] を使用する場合、X は newInstance を使用してインスタンス化できる必要がありますが、メソッド内で内部的に宣言する場合はそうではありません。

パッケージまたはオブジェクトで Actor クラスを定義するか、Props(new Actor1) を使用します。

于 2012-01-22T16:26:27.397 に答える