Testing in Scala

Course Length: 3 days
  1. Command Line Project Setup and Running
    1. ScalaTest in SBT
    2. ScalaTest in Maven
    3. ScalaTest in Gradle
    4. ScalaTest in Standard Command Line
  2. ScalaTest Introduction
    1. Explaining ScalaTest
    2. Selecting a Testing Structure
    3. Running Entire Tests
    4. Running Select Tests
  3. ScalaTest in Editors
    1. IntelliJ
    2. Eclipse
    3. VSCode
  4. A Review in
    implicit
  5. ScalaTest Assertions and Matchers
    1. Using assertions
      1. Basic assertions
      2. Expected assertions
      3. Asserting Compilability
      4. Success and Failure
      5. Assuring Compilation
      6. Assuming Conditions
      7. Cancellations and Clues
    2. Using matchers
      1. Basic matchers
      2. Collection matchers and order
      3. Assuring Compilability
      4. Testing Throwables
      5. Compound conditions
      6. Testing properties
  6. ScalaTest Decorators
    1. Info
    2. Ignore
    3. Pending
    4. Given
      ,
      When
      ,
      Then
  7. ScalaTest Fixtures
    1. withFixture
    2. BeforeAndAfter
      trait
  8. Asynchronous Testing in ScalaTest
    1. Review of
      Future[T]
    2. Asynchronous Specs
    3. Other Techniques
  9. Test Driven Development Using ScalaTest
    1. Test Driven Development Rules
    2. Test Driven Development Example
  10. Typeclasses Review
  11. For Comprehensions Review
  12. Test Driven Development with Property Based Testing
    1. Arbitrary
    2. Generators
    3. ScalaTest Table Driven Property Tests
  13. Test Doubles
    1. Various Test Doubles
    2. ScalaMock
      1. Mocking Classes
      2. Mocking Objects
      3. Mocking Functions
    3. Avoiding Mocks Altogether
      1. Parameterize Method Pattern
      2. Parameterize Constructor Pattern