ScalaTest User Guide Getting started Selecting testing styles Defining base classes Writing your first test Using assertions Tagging your tests Running your tests Sharing fixtures Sharing tests Using matchers Testing with mock objects Property-based testing Asynchronous testing Using Scala-js Using Inside Using OptionValues Using EitherValues Using PartialFunctionValues Using PrivateMethodTester Using WrapWith Philosophy and design Migrating to 3.0 |
Using Scala-jsScalaTest 3.2.19 includes support for Scala-js. Following the steps in the Scala-js Basic Tutorial, you'll add the following to sbt build file to use ScalaTest: libraryDependencies += "org.scalatest" %%% "scalatest" % "3.0.0" % "test" The following is an example test suite written using ScalaTest: package tutorial.webapp import org.scalatest._ import org.scalajs.jquery.jQuery class TutorialTestWithScalaTest extends AnyFunSpec { // Initialize App TutorialApp.setupUI() describe("TutorialApp") { it("should contain 'Hello World' text in its body") { assert(jQuery("p:contains('Hello World')").length == 1) } it("should append 'You clicked the button!' text when the user clicks on the 'Click me!' button") { def messageCount = jQuery("p:contains('You clicked the button!')").length val button = jQuery("button:contains('Click me!')") assert(button.length == 1) assert(messageCount == 0) for (c <- 1 to 5) { button.click() assert(messageCount == c) } } } }
The first test uses
You can run the test by issuing > test [info] TutorialTestWithScalaTest: [info] TutorialApp [info] - should contain 'Hello World' text in its body [info] - should append 'You clicked the button!' text when the user clicks on the 'Click me!' button Now we can take a look at some goodies ScalaTest has that can help you address specific problems, starting with using Inside. |
ScalaTest is brought to you by Bill Venners and Artima.
ScalaTest is free, open-source software
released under the Apache
2.0 license.
If your company loves ScalaTest, please consider sponsoring the project.
Copyright © 2009-2025 Artima, Inc. All Rights Reserved.