Skip to content

Unit Test handler functionsλ︎

Handler functions can be tested with unit tests as they are just pure functions. All handlers take a request hash-map and return a response hash-map. So its easy to give each handler a hash-map as an argument and test that we get the expected response hash-map in return.

There is no need to mock the framework until we do integration level testing, where we are testing the full lifecycle of request-response.

It is useful to have separate unit and integration tests to quickly narrow down the root cause of issues.

Unit test branchλ︎

The unit tests are placed under test/full_namespace_path/ and reside in files with the same names as the source code filenames, with -test postfixed to the end.

src/practicalli/simple_webapp/handlers.clj
test/practicalli/simple_webapp/handlers-test.clj

Writing unit testsλ︎

clojure.test is used to write unit tests for handlers, as we are just treating them as functions.