Writing a Small DSL
In this section, we'll
reimplement some
FlatSpec
ScalaTest
DSLs in order to see how to implement DSLs in Scala.
First, we'll have a look at a simple way to model test cases in Scala using case classes. Then, we'll have a look at how to create a little DSL for creating those test cases.
Modeling Test Cases
Before we can create a DSL, we need to have something to create a DSL for. In our case, we want to create a DSL for specifying tests, so let's have a look at how we could model tests using case classes in Scala:
sealed trait TestResult case class TestFailure(message: String) extends TestResult case object TestSuccess extends TestResult
We'll create an algebraic data type that represents the result of running a test case. The ...
Get Professional Scala now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.