这篇文章将介绍如何用 Akka-testkit 对 Akka 程序进行测试。 并行程序是最难调试的程序类型之一,因此做好测试是相当重要的事情。 这段代码将包含所有要测试的元素,后面我们将示例怎么用 Akka-testkit 测试这段代码。 因此有必要针对 Akka 开发一套测试工具, Akka-testkit 测试包应运而生。 3 Akka-testkit 的使用 Maven 项目要使用 Akka-testkit,需要在 pom.xml 文件中加入 akka-testkit 包,如下所示。 对于这篇文章质量,我个人比较满意的,甚至敢认为这篇文章应该是国内关于 Akka-testkit 最清楚的文章之一(ps:大牛们轻喷)。
requester = new TestKit(system); TestKit device1 = new TestKit(system); TestKit device2 = new TestKit requester = new TestKit(system); TestKit device1 = new TestKit(system); TestKit device2 = new TestKit requester = new TestKit(system); TestKit device1 = new TestKit(system); TestKit device2 = new TestKit requester = new TestKit(system); TestKit device1 = new TestKit(system); TestKit device2 = new TestKit requester = new TestKit(system); TestKit device1 = new TestKit(system); TestKit device2 = new TestKit
java.lang.RuntimeException at OnlyDependencyManagementIntegrationTests.java:42 Caused by: org.gradle.testkit.runner.UnexpectedBuildFailure java.lang.RuntimeException at OnlyDependencyManagementIntegrationTests.java:42 Caused by: org.gradle.testkit.runner.UnexpectedBuildFailure java.lang.RuntimeException at OnlyDependencyManagementIntegrationTests.java:42 Caused by: org.gradle.testkit.runner.UnexpectedBuildFailure java.lang.RuntimeException at OnlyDependencyManagementIntegrationTests.java:42 Caused by: org.gradle.testkit.runner.UnexpectedBuildFailure java.lang.RuntimeException at OnlyDependencyManagementIntegrationTests.java:42 Caused by: org.gradle.testkit.runner.UnexpectedBuildFailure
probe = new TestKit(system); ActorRef deviceActor = system.actorOf(Device.props("group", "device") probe = new TestKit(system); ActorRef deviceActor = system.actorOf(Device.props("group", "device") @Test public void testRegisterDeviceActor() { TestKit probe = new TestKit(system); ActorRef groupActor TestKit有两条消息,我们可以很容易地使用watch()来观察指定的 Actor,使用expectTerminated来断言被观察的 Actor 已被终止。 我们现在再添加两个测试用例。 第二个测试用例确保在设备 Actor 停止后正确删除设备 ID: @Test public void testListActiveDevices() { TestKit probe = new TestKit
.] = query.result foo.run(db) 更多的例子,可以参考这里: https://github.com/slick/slick/blob/master/slick-testkit/ src/main/scala/com/typesafe/slick/testkit/tests/CountTest.scala 从Slick 2.X 迁移到 Slick 3.X http://stackoverflow.com
测试类使用的是akka.test.javadsl.TestKit,它是用于 Actor 和 Actor 系统集成测试的模块。这个类只使用了TestKit提供的一部分功能。 第一个测试使用TestKit探针来询问和验证预期的行为。 com.lightbend.akka.sample.Printer.Greeting; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.testkit.javadsl.TestKit testProbe = new TestKit(system); final ActorRef helloGreeter = system.actorOf(Greeter.props( TestKit的expectMsg方法验证是否发送了消息。 示例代码只涉及了TestKit功能的一小部分,在「这里」可以找到更完整的概述。 现在我们已经检查了所有代码。
) .matchEquals("get", s -> getSender().tell(state, getSelf())) .build(); } } 通过使用「TestKit import akka.testkit.TestProbe; import akka.testkit.ErrorFilter; import akka.testkit.EventFilter; import akka.testkit.TestEvent; import static java.util.concurrent.TimeUnit.SECONDS; import static akka.japi.Util.immutableSeq ActorSystem.create("FaultHandlingTest", config); } @AfterClass public static void cleanup() { TestKit.shutdownActorSystem
Note: Wix, 一个 Sentry 合作伙伴, 负责维护Sentry Testkit。 Sentry Testkit 是一个 Sentry 插件,允许拦截 Sentry 的报告,并进一步检查正在发送的数据。 Installation npm install sentry-testkit --save-dev Using in tests const sentryTestkit = require("sentry-testkit expect(testkit.reports()).toHaveLength(1); const report = testkit.reports()[0]; expect(report).toHaveProperty Testkit API Sentry Testkit 由一个非常简单和直接的 API 组成。在 Sentry Testkit Docs 中可以看到完整的 API 描述和文档。
Exonum Testkit 项目地址:https://github.com/exonum/exonum/tree/master/testkit 4.
GreeterMain开始执行问候进程的指令; 这样看的话不如直接进入test @Test public void testGreeterActorSendingOfGreeting() { //testKit 为单元测试提前加入SpringBean而准备的对象 TestProbe<Greeter.Greeted> testProbe = testKit.createTestProbe() ; ActorRef<Greeter.Greet> underTest = testKit.spawn(Greeter.create(), "greeter"); 得到Greet
Step 2:自动化「双轨验证流水线」 开发Pytest插件rag-testkit,支持并行执行: - 检索轨:调用向量库API获取top-5 chunk,验证其与query的余弦相似度>0.65、覆盖全部标注关键词 (本文实践方法论已开源,详见github.com/zhuomu-qa/rag-testkit)
%% "scalamock" % "4.0.0" % "test", // 模拟框架 "com.typesafe.akka" %% "akka-stream-testkit " % "2.4.20" % "test", "com.typesafe.akka" %% "akka-testkit" % "2.4.20" % "test", {HttpRequest, HttpResponse} import akka.stream.ActorMaterializer import akka.testkit. {ImplicitSender, TestKit} import org.scalamock.scalatest.MockFactory import org.scalatest. {ExecutionContextExecutor, Future} class BaseTestAppClient extends TestKit(ActorSystem("BaseTestAppClient
@Test public void testReplyWithEmptyReadingIfNoTemperatureIsKnown() { TestKit probe = new TestKit(system } 我们现在还应该编写一个新的测试用例,同时使用读/查询和写/记录功能: @Test public void testReplyWithLatestTemperatureReading() { TestKit probe = new TestKit(system); ActorRef deviceActor = system.actorOf(Device.props("group", "device")
为了验证这个Buncher是否真的有效,使用「TestKit」编写一个测试非常容易,这里使用 JUnit 作为示例: public class BuncherTest extends AbstractJavaTest system = ActorSystem.create("BuncherTest"); } @AfterClass public static void tearDown() { TestKit.shutdownActorSystem system); system = null; } @Test public void testBuncherActorBatchesCorrectly() { new TestKit buncher); } }; } @Test public void testBuncherActorDoesntBatchUninitialized() { new TestKit
我们倡导将测试流程深度集成至CI/CD: - 使用PyTest+LangChain Testkit编写可参数化的测试用例,支持动态注入模型端点、超参、evaluator; - 在Kubernetes集群中为测试
(c *C) { defer func() { s.cleanEnv(c) testleak.AfterTest(c)() }() tk := testkit.NewTestKit length(a), length(b), length(c), length(d), length(e), length(f), length(null) from t") result.Check(testkit.Rows
java.io.IOException; import java.io.PrintWriter; import java.util.function.Consumer; import org.gradle.testkit.runner.BuildResult ; import org.gradle.testkit.runner.GradleRunner; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test
akka-actor akka-agent akka-camel akka-cluster akka-multi-node-testkit akka-persistence akka-remote akka-remote (artery) akka-testkit akka-cluster-metrics akka-cluster-tools akka-cluster-sharding akka-distributed-data
Also the installation of the CE TestKit brings no effect.
的测试代码,发现了大量的这样的用法: result = tk.MustQuery("select count(*) from t group by d order by c") result.Check(testkit.Rows 这是 tk 的主要函数: // Exec executes a sql statement. func (tk *TestKit) Exec(sql string, args ...interface{