easytest
Version 0.3 revision 0 uploaded by joelb.
Package meta
- Synopsis
- Simple, expressive testing library
- Description
EasyTest is a simple testing toolkit for unit- and property-testing. It's based on the hedgehog property-testing system. Here's an example usage:
module Main where import EasyTest import qualified Hedgehog.Gen as Gen import qualified Hedgehog.Range as Range suite :: Test suite = tests [ scope "addition.ex1" $ unitTest $ 1 + 1 === 2 , scope "addition.ex2" $ unitTest $ 2 + 3 === 5 , scope "list.reversal" $ property $ do ns <- forAll $ Gen.list (Range.singleton 10) (Gen.int Range.constantBounded) reverse (reverse ns) === ns -- equivalent to `scope "addition.ex3"` , scope "addition" . scope "ex3" $ unitTest $ 3 + 3 === 6 , scope "always passes" $ unitTest success -- record a success result , scope "failing test" $ crash "oh noes!!" ] -- NB: `run suite` would run all tests, but we only run -- tests whose scopes are prefixed by "addition" main :: IO Summary main = runOnly "addition" suite
This generates the output:
━━━ runOnly "addition" ━━━ ✓ addition.ex1 passed 1 test. ✓ addition.ex2 passed 1 test. ⚐ list.reversal gave up after 1 discard, passed 0 tests. ✓ addition.ex3 passed 1 test. ⚐ always passes gave up after 1 discard, passed 0 tests. ⚐ failing test gave up after 1 discard, passed 0 tests. ⚐ 3 gave up, 3 succeeded.
We write tests with ordinary Haskell code, with control flow explicit and under programmer control.
- Author
- Joel Burget, Paul Chiusano
- Bug reports
- https://github.com/joelburget/easytest/issues
- Category
- Testing
- Copyright
- Copyright (C) 2017-2019 Joel Burget, Copyright (C) 2016 Paul Chiusano and contributors
- Homepage
- https://github.com/joelburget/easytest
- Maintainer
- Joel Burget <joelburget@gmail.com>
- Package URL
- n/a
- Stability
- provisional