到目前为止,我唯一看到的是有人发布了一个测试 TypedActor 的示例。我认为没有办法通过说 Junit 来测试 UntypedActor?Akka 文档一天比一天好,但我没有看到提到的测试。这真的很明显,我只是错过了一些东西吗?
问问题
2649 次
3 回答
5
要使用 JUnit 进行测试,您需要使用 JUnit 提供的工具,有关测试 Actor(Java equiv 是 UntypedActor)的文档在这里:http ://akka.io/docs/akka/snapshot/scala/testing.html
于 2011-05-12T08:14:00.007 回答
1
您可能对我写的博客文章感兴趣:使用 Mockito 和 FEST-Reflect 测试 AKKA 演员我使用的示例基于 JUnit、Mockito 和 FEST-Reflect。让我知道这对您是否有用。
于 2012-09-10T13:23:52.283 回答
1
至少在 1.3 和 2.0 版本以及 akka-testkit 库中是可能的。
你做这样的事情来设置你的演员:
@Before
public void initActor() {
actorSystem = ActorSystem.apply();
actorRef = TestActorRef.apply(new AbstractFunction0() {
@Override
public Pi.Worker apply() {
return new Pi.Worker();
}
}, actorSystem);
}
然后,您可以使用 TestProbe 类来测试您的演员(对于 1.3 版,它略有不同):
@Test
public void calculatePiFor0() {
TestProbe testProbe = TestProbe.apply(actorSystem);
Pi.Work work = new Pi.Work(0, 0);
actorRef.tell(work, testProbe.ref());
testProbe.expectMsgClass(Pi.Result.class);
TestActor.Message message = testProbe.lastMessage();
Pi.Result resultMsg = (Pi.Result) message.msg();
assertEquals(0.0, resultMsg.getValue(), 0.0000000001);
}
在我写的关于我的一些经验的博文中有更多可用的内容:http: //fhopf.blogspot.com/2012/03/testing-akka-actors-from-java.html
于 2012-03-07T19:59:52.713 回答