fitspec
refine properties for testing Haskell programs (by rudymatela)
DocTest
An implementation of Python's doctest for Haskell (by sol)
fitspec | DocTest | |
---|---|---|
- | 3 | |
75 | 371 | |
- | - | |
6.7 | 7.9 | |
8 months ago | 3 days ago | |
Haskell | Haskell | |
BSD 3-clause "New" or "Revised" License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
fitspec
Posts with mentions or reviews of fitspec.
We have used some of these posts to build our list of alternatives
and similar projects.
We haven't tracked posts mentioning fitspec yet.
Tracking mentions began in Dec 2020.
DocTest
Posts with mentions or reviews of DocTest.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-01-15.
-
HSpec, Tasty, sydtest, Hunit, ... -> what do you use for writing Haskell tests?
doctest for testing examples in the documentation. Docs are much clearer when they contain usage examples and doctest helps them keep up to date.
-
Why is the debugger so bad in Haskell? (or is it just me)
Try to restrict your types even on sub functions (inside where), use testing, break down your code to the most atomic parts, using ghci to debug each part once at a time, and because Haskell doesn't let you reuse variables, or mutate state, it's a lot easier to rationalize evaluation order (which makes it a lot easier to debug without step debuggers compared to languages like python).
-
Documentation or lack thereof?
Some may argue that the tests are a form of documentation, and that's true, but they still don't capture the why. And tests are almost always separated from the actual code, which makes it more complicated to look at the code and the tests at the same time and understand them together. I've used doctest with Haskell which is a solution to this. Doctest is nice at first but in my experience it wasn't reasonable to do non-trivial tests in doctest, and plenty of tests are non-trivial. So then you're left with the decision to use doctest where you can, and another test solution for non-trivial tests, or just do all tests using the other testing solution. We chose simplicity and got rid of doctest.
What are some alternatives?
When comparing fitspec and DocTest you can also consider the following projects:
monad-mock - A Haskell package that provides a monad transformer for mocking mtl-style typeclasses
tasty - Modern and extensible testing framework for Haskell
webdriver - A Haskell client for the Selenium WebDriver protocol.
quicktest
checkers - Check properties on standard classes and data structures
http-test - Tests for HTTP APIs
QuickCheck - Automatic testing of Haskell programs.
bdd - A domain-specific language for testing programs using Behavior-Driven Development (BDD) process in Haskell
test-fixture - Testing with monadic side-effects
http-mock - HTTP mocking and expectations library for Haskell