Workshop: Growing Functional Software, Guided by Tests

Learn how to develop and test applications with F# - the .NET language with superior productivity. You'll see comprehensive examples of how to develop a web-based application using outside-in test-driven development. As part of the course, you’ll receive a complete small code base that implements a simple web service entirely in F#.

You'll learn how to apply outside-in test-driven development in the style from Growing Object-Oriented Software, Guided by Tests - with the twist that the result isn't going to be Object-Oriented, but Functional. You'll learn how to exercise the boundary of an application via automated tests, and how to include a relational database as part of test-driven integration testing.

What you will learn:

  • How to design a complete application with Functional Programming
  • Using xUnit.net to drive tests written in F#
  • Testing an HTTP-based API through OWIN self-hosting
  • How to set up and tear down a relational database as part of acceptance testing
  • How to interoperate with existing object-oriented .NET frameworks and libraries

The workshop will consist of an interchange of presentations and hands-on exercises.

Intended Audience
Programmers interested in learning new techniques for design and unit testing of software should attend this workshop. Even if you don't work with F#, you may learn something interesting that you can use in your daily life.

Prerequisites
You ought to be able to write simple F# library code, but you don't have to have extensive experience with F#: as long as you're comfortable with basic F# syntax, you will benefit from participating.

Computer setup

You will require a laptop capable of writing and compiling F# 4 code to follow this workshop:

  • xUnit.net tests
  • Visual Studio 2015

You can attend this workshop by itself, but you can also combine it with the property-based testing workshop for extra synergy!