问题标签 [akka-testkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
420 浏览

scala - TestActorRef:无法获取底层Actor,什么也没说

我正在尝试写我的第一个ScalaTest以供关注Actor

所以,我愿意

但我看到的是

在此处输入图像描述

为什么我不拿回来Runner Actor

0 投票
1 回答
844 浏览

scala - Akka Actor 在单元测试期间出现异常后重新启动

我的Actor样子

我的测试看起来像

  • 但是,我在日志中看到它失败了,因为一旦RuntimeException发生,Actor就会重新启动。
  • 如您所见, myActor没有定义 any supervisorStrategy,其父级为

但我不是supervisor在这里测试,事实上主管甚至不是测试的一部分。

这里出了什么问题?

日志

0 投票
1 回答
672 浏览

scala - 即使抛出,演员也不会在测试中捕获异常

我的Actor样子

我的test样子

我在日志中看到抛出异常

但我的测试仍然失败

我什至尝试了docs中提到的策略,但我仍然得到相同的结果。

我在做什么不正确?

0 投票
3 回答
4613 浏览

scala - Akka Http 路由测试:请求在 1 秒内既没有完成也没有被拒绝

我正在尝试为我的应用程序编写一个测试用例akka-http。下面给出了其中一个测试用例:

当我运行它时,它有时会正常工作,有时我会收到错误消息Request was neither completed nor rejected within 1 second。我添加了一个 Thread.sleep 让它现在工作。我知道这不是正确的解决方案。谁能告诉我如何让测试等待超过 1 秒?

0 投票
1 回答
693 浏览

scala - 有人测试过 Akka-http-testkit 吗?

我在基于 akka-http 和 akka clustering 的微服务架构中工作。我在 akka 文档中看到了这个库akka-http-testkit。实际上,它处于实验状态,但还没有找到任何文档。似乎它正在取得进展。

有人用过这个库吗?任何人都可以建议我测试其他微服务的任何方法吗?. 我的第一个选择是使用Karma,并通过 javascript 进行测试,但很高兴听到不同的意见和选项(如 Akka-http-testkit ...也许... :))

0 投票
1 回答
2306 浏览

scala - Akka TestKit 如何等待消息被处理

在我的 TestKit 测试中

这个测试失败了,因为它仍然是WriteResult(0,0)

我的工作方式HistoryActor

那么,当我们检查结果时,如何进行测试以确保WriteResult已经处理呢?

PS我想我应该考虑WriterActor单独测试,但是假设我想要那种类似集成的测试。

0 投票
3 回答
222 浏览

scala - 通过 system.actorOf 获得的 ActorRef 是否等于这个 actor 内部的 self?

我设计了一个actor,它应该在预启动时将它的actorRef发送给另一个actor:

然后我为这个 Actor 编写了一个规范:

当我运行测试时,它失败并显示以下消息:assertion failed: expected Register(Actor[akka://MyActorSpec/user/$b#1849780829]), found Register(Actor[akka://MyActorSpec/user/$a#1143150267])

因此,似乎通过 MyActorself内部获得的 ActorRef 不等于system.actorOf在我的测试中获得的 ActorRef 。有什么建议么?

0 投票
2 回答
7383 浏览

scala - 如何正确使用 Akka-TestKit TestProbe?

我从http://doc.akka.io/docs/akka/snapshot/scala/testing.html#Using_Multiple_Probe_Actors扩展了这个例子。

我不认为这是一个正确或好的测试用法。当我删除tester1.expectMsg(500.milliseconds, "Hello")测试失败时,tester2 的测试取决于测试 tester1。在我看来这很糟糕。

还将线路更改context.system.scheduler.scheduleOnce(400.milliseconds, actorRef1, "Hello")(context.system.dispatcher)为 100 毫秒的延迟会使测试失败。所以测试消息 2 取决于发送消息 1。在我看来这也很糟糕。

为了解决这个问题,我将在发送消息后添加一个 Thread.sleep 并将 #expectMsg 的等待时间更改为 0 毫秒。Thread.sleep 在测试中也不适合我,但我认为在演员测试中它是必须的。这是正确的方法吗?

我认为 TestProbe 是为测试多个参与者而设计的。但对我来说,在测试多个参与者时,#expectMsg 的等待时间参数是毫无用处的。

欢迎任何意见。

0 投票
1 回答
1096 浏览

scala - 如何测试actor是scala中testkit的主要类

我已经开始为 scala actor 编写测试。我读了这个博客。http://blog.matthieuguillermin.fr/2013/06/akka-testing-your-actors/ 然后我开始了。我写了应用程序演员。但我意识到与其他人不同的应用程序参与者在博客中。因为演员是主班。它在控制台上写入字符串并向另一个参与者发送消息。如何测试应用程序参与者?

我写了ApplicationTest。但是当我运行它时,测试结果失败了。

错误如下:

我该如何进行?

0 投票
1 回答
91 浏览

scala - 为什么`TestFSMRef.receive must throw [Exception]`间歇性失败

嗨,程序员们和受人尊敬的大师们,

我有一个执行者,它需要在处于特定状态(忙碌FSM)时在某些消息上引发 IOException以由其Supervisor重新启动。

摘抄:

我正在尝试通过使用 aTestActorRef并直接调用receive期望的接收来测试该行为以抛出IOException.

注意:初始化序列确保测试的 FSM 已完全初始化并已设置其内部可变状态。只有当参与者收到在我的测试设置中必须由测试用例提供的某种消息时才能离开状态忙碌,所以我很确定 FSM 处于正确的状态。

现在,在我的 Jenkins 服务器(Ubuntu 14.10)上,这个测试用例在 20 次尝试中大约有 1 次失败(-> 没有抛出异常)。但是,在我的开发机器(Mac Os X 10.10.4)上,我无法重现该错误。所以调试器对我没有帮助。

测试按顺序运行,并且在每个示例之后关闭测试系统。

  • Java 版本 1.7.0_71
  • 斯卡拉版本 2.11.4
  • Akka 版本 2.3.6
  • Specs2 版本 2.3.13

谁能解释为什么有时调用myTestActorRef.receive(ExceptionResponse(testedCode))不会导致Exception