This is a small example project used to demonstrate using snapshot (aka approval) testing and code/mutation coverage as a tool for changing mission-critical software following the Law of System Behaviour:
Given sufficient time and usage,
all observable system behaviour,
intentional or unintentional,
will become depended upon.
See https://jasondecarvalho.substack.com/p/snapshot-testing for my article.
This project uses
- http4k - a functional toolkit for Kotlin HTTP applications
- PIT for mutation testing
- Arcmutate for improved Kotlin support for PIT
- selfie for snapshot testing
./gradlew testto run the tests./gradlew jacocoTestReportto run JaCoCo. Report:build/reports/jacoco/index.html./gradlew pitestto run PIT. Report:build/reports/pitest/index.html