ScalaTest 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 jQuery to verify that the page contains exactly one <p> element containing the text "Hello World" after the UI has been set up. The second test checks the behavior that
when 'Click me!' button is clicked, it will append a new <p> element containing the text "Hello World" in
the body of the page.
You can run the test by issuing test command in the sbt:
> 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.