1
1
mirror of https://github.com/qfpl/applied-fp-course.git synced 2024-11-23 03:44:45 +03:00
applied-fp-course/level04
Sean Chalmers 418ce19e02 Overhauled nix file setup to be more like the other QFPL projects.
- Regenerated the individual nix files.
- Removed the shell.nix files

Just running ``$ nix-build`` in levels greater than 2 currently
doesn't succeed, still working on this. The nix-shell environments
work as expected for all levels.
2017-09-18 10:14:29 +10:00
..
bin Fix project restructure 2017-08-14 16:48:34 +10:00
src/FirstApp Removes a function that was just constructors 2017-09-12 15:42:07 +10:00
tests Rebuilt Conf File Read Handling 2017-09-12 11:21:27 +10:00
appconfig.json Add guidance about handling requests without persistent storage. 2017-09-11 10:29:56 +10:00
changelog.md change changelog files to lowercase 2017-09-01 11:17:26 +10:00
default.nix Overhauled nix file setup to be more like the other QFPL projects. 2017-09-18 10:14:29 +10:00
level04.cabal Merge branch 'master' of gitlab.com:qfpl/applied-fp-course 2017-09-12 13:41:26 +10:00
level04.nix Overhauled nix file setup to be more like the other QFPL projects. 2017-09-18 10:14:29 +10:00
LICENCE update copyright notice 2017-09-12 11:51:26 +10:00
README.md Wording updates, description adjustments 2017-09-06 10:54:50 +10:00
Setup.hs Add Level 04 2017-08-11 10:40:05 +10:00
test.json Rebuilt Conf File Read Handling 2017-09-12 11:21:27 +10:00

Level 04

In this exercise we're going to add some tests to our application. Because types are awesome, and tests are pretty good. But types AND tests is pretty much perfect.

These tests will not be awe inspiring, this exercise is primarily to introduce you to adding tests to your Haskell application. The setup of the Cabal file is already completed for you, but will be covered.

As is to be expected, there are multiple testing frameworks and packages available but we will only cover one here. We will use the HSpec framework, with the hspec-wai package to make our lives a bit easier.

Start in tests/Test.hs.

Aside: Tool Introduction - ghcid

Additionally we'd like to introduce a command line tool that you may find useful for Haskell development; ghcid. This is a very lightweight tool that works for any project with a functioning cabal setup.

If you would like to use it, consult its documentation for how to install it, and then in an spare open terminal window, navigate to the root of the Haskell project and run $ ghcid.

It will then attempt to build your project, if errors are found they will be displayed. But more importantly you can go back to editing files in the project and ghcid will refresh in the background. Providing you with new error messages or All Good if it cannot find any errors.

ghcid provides extremely fast feedback, allowing for a nice development process with constant feedback about your changes. It is very useful in tandem with type holes. Give it a try!