Book Image

Scala Test-Driven Development

By : Gaurav Sood
Book Image

Scala Test-Driven Development

By: Gaurav Sood

Overview of this book

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.
Table of Contents (16 chapters)
Scala Test-Driven Development
Credits
About the Author
Acknowledgments
About the Reviewer
www.PacktPub.com
Preface

Differences between Specs2 and ScalaTest


The main differences between ScalaTest and Specs2 are:

  • The overall structure of the test in Specs2 is different to that in ScalaTest.

  • Specs2 has a different set of Matchers with different syntax.

  • Specs2 tests are primarily dedicated to behavior-driven development (BDD), whereas ScalaTest tests are more generic.

  • ScalaTest provides much more choice and versatility. For example, to write BDD-like Specs2 in ScalaTest, one can use Spec, FeatureSpec, WordSpec, FlatSpec, and GivenWhenThen traits along with ShouldMatchers or MustMatcher. This gives the developer more flexibility to follow his/her own style of writing specifications.

  • Specs2 has a significantly higher number of Matchers than ScalaTest. Most of them are for a particular need. For example, in Specs2, you can say:

      aFile mustBe aDirectory 
  • Where Specs2 has individual Matchers for java.io.Files, ScalaTest does not have similar Matchers.

  • Another difference between ScalaTest and Spec is implicit...