Scala is a concise, object-oriented language with functional programming features, including currying, type inference, immutability, lazy evaluation, and pattern matching. Scala code runs on a JVM and was designed to address some of the shortcomings of Java.

In this instructor-led, live training participants will learn how to use Scala's advanced features, including its type system, to write better code using an object-functional approach.

In this instructor-led, live training participants will learn how to use Scala's advanced features to develop well-constructed software that is easy to write, read, test, and change. The focus of this training is on functional programming, using real-world case studies and discussion as a reference for lab exercises and activities.

ScalaCheck is a library for carrying out automated, property-based testing for Scala or Java programs. Inspired by the Haskell library QuickCheck, it uses properties to describe the expected behavior of an application, generating random input data at first, then testing this data across different areas of the application and reporting the result.

In this instructor-led, live training, participants will learn the benefits of and concepts behind property-based testing as they practice writing properties that lead to the automatic generation of test cases.

By the end of this training, participants will be able to:

- Write general properties that replace and/or compliment hand-written unit test cases- Write tests at the higher level of property specifications- Execute ScalaCheck as a standalone executabl, using the built-in command line test runner- Integrate ScalaCheck with test frameworks such as ScalaTest, specs2 and LambdaTest

Audience

- Test engineers- Developers

Format of the course

- Part lecture, part discussion, exercises and heavy hands-on practice

This training outline is intended to bring attendees from a beginner to an intermediate/advanced level in the understanding and knowledge of the Akka framework.

The entire course is hands on, mostly driven by the trainer in the beginning and progressively shifting towards the attendees producing code themselves (and downloading implementations/solutions written by the trainer).

Attendees are not expected to have prior knowledge of Scala, the trainer will take the necessary time to explain and clarify all the intricacies that relate to the Scala code used.