Please log in to watch this conference skillscast.
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.