Popularity
2.6
Growing
Activity
0.0
Stable
1
3
0
Monthly Downloads: 14
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Add another 'hspec' Package
README
hspec-parsec
This package provides handy Hspec expectations for testing Parsec parsers.
Usage
Add hspec-parsec
to your test suite's dependencies:
build-depends: base
, hspec
, hspec-parsec
, parsec
… write some tests:
import Test.Hspec
import Test.Hspec.Parsec
import Text.Parsec
import Text.Parsec.String (Parser)
main :: IO ()
main = hspec $ do
describe "yamlBool" $ do
let yamlBool' = parse yamlBool ""
it "correctly parses \"True\"" $ do
yamlBool' "True" `shouldParse` True
it "doesn't parse \"yes\"" $ do
yamlBool' `shouldFailOn` "yes"
yamlBool :: Parser Bool
yamlBool =
(choice (map string false) *> pure False)
<|> (choice (map string true) *> pure True)
where
false = ["false", "False", "FALSE"]
true = ["true", "True", "TRUE"]
… and run them:
$ stack test
hspec-parsec> test (suite: spec)
yamlBool
correctly parses "True"
doesn't parse "yes"
Finished in 0.0001 seconds
2 examples, 0 failures
hspec-parsec> Test suite spec passed
Development status and contributing
This package is currently very limited. If you need more functionality or want to contribute in some other way, you're welcome to open an issue or make a PR! :)
Thanks
… to Mark Karpov, whose package
hspec-megaparsec
much inspired hspec-parsec
!
*Note that all licence references and agreements mentioned in the hspec-parsec README section above
are relevant to that project's source code only.