Build robust Scala applications by implementing the fundamentals of test-driven development in your workflow
About This Book
* Get a deep understanding of various testing concepts such as test-driven development (TDD) and BDD
* Efficient usage of the built-in Scala features such as ScalaTest, specs2, and Scala check
* Change your approach towards problem solving by thinking about the boundaries of the problem and its definition rather than focusing on the solution
Who This Book Is For
This book is for Scala developers who are looking to write better quality and easily maintainable code. No previous knowledge of TDD/BDD is required.
What You Will Learn
* Understand the basics of TDD and its significance
* Refactoring tests to build APIs in order to increase test coverage
* How to leverage the inbuilt Scala testing modules like ScalaTest, specs2 and Scala Check
* Writing test fixtures and apply the concepts of BDD
* How to divide tests to run at different points in continuous delivery cycle
* Benefits of refactoring and how it affects the final quality of code produced
* Understanding of SBT based build environment and how to use it to run tests
* The fundamentals of mocking and stubbing in Scala and how to use it efficiently
In Detail
Test-driven development (TDD) produces high-quality applications in less time than is possible with traditional methods. Due to the systematic nature of TDD, the application is tested in individual units as well as cumulatively, right from the design stage, to ensure optimum performance and reduced debugging costs.
This step-by-step guide shows you how to use the principles of TDD and built-in Scala testing modules to write clean and fully tested Scala code and give your workflow the change it needs to let you create better applications than ever before.
After an introduction to TDD, you will learn the basics of ScalaTest, one of the most flexible and most popular testing tools around for Scala, by building your first fully test-driven application. Building on from that you will learn about the ScalaTest API and how to refactor code to produce high-quality applications.
We'll teach you the concepts of BDD (Behavior-driven development) and you'll see how to add functional tests to the existing suite of tests. You'll be introduced to the concepts of Mocks and Stubs and will learn to increase test coverage using properties.
With a concluding chapter on miscellaneous tools, this book will enable you to write better quality code that is easily maintainable and watch your apps change for the better.
Style and approach
This step-by-step guide explains the significance of TDD in Scala through various practical examples. You will learn to write a complete test-driven application throughout the course of the book.