Book Image

Mastering F#

By : Alfonso García-Caro Núñez, Suhaib Fahad
Book Image

Mastering F#

By: Alfonso García-Caro Núñez, Suhaib Fahad

Overview of this book

F# is a multi-paradigm programming language that encompasses object-oriented, imperative, and functional programming language properties. Now adopted in a wide range of application areas and is supported both by industry-leading companies who provide professional tools and by an active open community, F# is rapidly gaining popularity as it emerges in digital music advertising, creating music-focused ads for Spotify, Pandora, Shazam, and anywhere on the web. This book will guide you through the basics and will then help you master F#. The book starts by explaining how to use F# with Visual Studio, file ordering, and the differences between F# and C# in terms of usage. It moves on to explain the functional core of F# such as data types, type declarations, immutability, strong type interference, pattern matching, records, F# data structures, sequence expressions, and lazy evaluation. Next, the book takes you through imperative and asynchronous programming, F# type providers, applications, and testing in F#. Finally, we look into using F# with distributed programming and using F# as a suitable language for data science. In short, this book will help you learn F# for real-world applications and increase your productivity with functional programming.
Table of Contents (16 chapters)

Chapter 9. Testing in F#

Enthusiasts of typed functional languages tend to say that the only errors you need to care about are compilation errors. That would indeed be the ideal situation, but even a compiler as advanced as F#'s cannot detect all errors; it is still necessary to test your code. For many years now, programmers have learned to automate these tests to avoid the time-consuming process of manual testing. There are many great tools for automated testing for all popular languages, and F# is no exception. In this chapter, we will overview several techniques from the widely used unit tests to the more advanced property-based testing.

In this chapter, we will cover the following topics:

  • How to write unit tests in F# with the popular NUnit tool, and the advantages the language offers for this. We will also see how to easily run tests in our builds with FAKE to make sure we haven't introduced regression bugs with our changes.
  • Property-based testing with FsCheck is a more robust way to...