Unit testing in Scala can be done using the Scalatest framework. Scalatest provides different styles like FunSuite, FlatSpec, FunSpec etc. to write unit tests. It allows sharing of fixtures between tests to reduce duplication. Asynchronous testing and mocking frameworks are also supported. When testing Spark applications, the test suite should initialize the Spark context and clean it up. Spark batch and streaming operations can be tested by asserting on DataFrames and controlling the processing time respectively.