Testing
You are viewing the documentation for the new actor APIs, to view the Akka Classic documentation, see Classic Testing.
Module info
To use Actor TestKit add the module to your project:
- sbt
val AkkaVersion = "2.6.21"
libraryDependencies += "com.typesafe.akka" %% "akka-actor-testkit-typed" % AkkaVersion % Test
- Maven
<properties>
<scala.binary.version>2.13</scala.binary.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-bom_${scala.binary.version}</artifactId>
<version>2.6.21</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor-testkit-typed_${scala.binary.version}</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
- Gradle
def versions = [
ScalaBinary: "2.13"
]
dependencies {
implementation platform("com.typesafe.akka:akka-bom_${versions.ScalaBinary}:2.6.21")
testImplementation "com.typesafe.akka:akka-actor-testkit-typed_${versions.ScalaBinary}"
}
We recommend using Akka TestKit with ScalaTest:
- sbt
libraryDependencies += "org.scalatest" %% "scalatest" % "3.1.4" % Test
- Maven
<properties>
<scala.binary.version>2.13</scala.binary.version>
</properties>
<dependencies>
<dependency>
<groupId>org.scalatest</groupId>
<artifactId>scalatest_${scala.binary.version}</artifactId>
<version>3.1.4</version>
<scope>test</scope>
</dependency>
</dependencies>
- Gradle
def versions = [
ScalaBinary: "2.13"
]
dependencies {
testImplementation "org.scalatest:scalatest_${versions.ScalaBinary}:3.1.4"
}
[+] Show project info
Project Info: Akka Actor Testkit (typed) |
Artifact | com.typesafe.akka
akka-actor-testkit-typed
2.6.21
|
JDK versions | Adopt OpenJDK 8 Adopt OpenJDK 11 |
Scala versions | 2.13.8, 2.12.16, 3.1.2 |
JPMS module name | akka.actor.testkit.typed |
License |
|
Readiness level |
Since 2.6.0, 2019-11-06
|
Home page | https://akka.io/ |
API documentation |
|
Forums |
|
Release notes | akka.io blog |
Issues | Github issues |
Sources | https://github.com/akka/akka |
Introduction
Testing can either be done asynchronously using a real ActorSystem
ActorSystem
or synchronously on the testing thread using the BehaviorTestKit
BehaviorTestKit
.
For testing logic in a Behavior
Behavior
in isolation synchronous testing is preferred, but the features that can be tested are limited. For testing interactions between multiple actors a more realistic asynchronous test is preferred.
Those two testing approaches are described in:
Found an error in this documentation? The source code for this page can be found
here.
Please feel free to edit and contribute a pull request.