Proving and testing with servant

6th October 2016 in London at CodeNode

There are 42 other SkillsCasts available from Haskell eXchange 2016

Please log in to watch this conference skillscast.

595697888 640

There are several powerful mechanisms for testing applications in the servant ecosystem that are not yet widely known or documented. You will explore them, showing how you can state, sometimes as type constraints, sometimes as QuickCheck predicates, properties about entire applications, such as:

  • No endpoint returns a 500 HTTP error
  • No endpoint returns a 'Password' datatype.
  • Application A and application B behave in the same way
  • No request takes longer than 50 ms.

These techniques largely apply (though not as cleanly) to web applications written with frameworks other than servant-server - indeed, written in any language. During this talk, you may also discover how the servant ecosystem can be used to improve integration tests. Among the packages you will look at are servant-quickcheck and servant-mock. Prior experience with servant is not required.

Thanks to our sponsors

Proving and testing with servant