<commit_before>---
layout: default
---

# User's Manual

Hspec is a testing framework for [Haskell](http://www.haskell.org/).  It is
roughly based on the Ruby library [RSpec](http://rspec.info/).  Some of Hspec's
distinctive features are:

 * a friendly DSL for defining tests
 * integration with QuickCheck and HUnit
 * parallel test execution
 * automatic discovery of test files

An example is worth a thousand words, so here we go:

<pre><kbd class="shell-input">cabal update && cabal install hspec</kbd></pre>

{% inline_example Example.hs %}

## Table of contents

* [Five-step introduction](getting-started.html)
* [Writing tests with Hspec](writing-specs.html)
* [Setting expectations](expectations.html)
* [Using QuickCheck with Hspec](quickcheck.html)
* [Interoperability with HUnit](hunit.html)
* [Automatic spec discovery](hspec-discover.html)
* [Parallel spec execution](parallel-spec-execution.html)

## Other resources

* [Hspec on GitHub](https://github.com/hspec/hspec)
* [Hspec on Hackage](http://hackage.haskell.org/package/hspec)
* [API documentation](http://hackage.haskell.org/packages/archive/hspec/latest/doc/html/Test-Hspec.html)
* [Vim syntax file for Hspec](https://github.com/hspec/hspec.vim#readme)
* [A report of Hspec's behavior](report.html)

## Support

Want to chat? `/join #hspec` on freenode!<commit_msg>Update documentation<commit_after>---
layout: default
---

# User's Manual

Hspec is a testing framework for [Haskell](http://www.haskell.org/).  It is
roughly based on the Ruby library [RSpec](http://rspec.info/).  Some of Hspec's
distinctive features are:

 * a friendly DSL for defining tests
 * integration with QuickCheck, SmallCheck, and HUnit
 * parallel test execution
 * automatic discovery of test files

An example is worth a thousand words, so here we go:

<pre><kbd class="shell-input">cabal update && cabal install hspec</kbd></pre>

{% inline_example Example.hs %}

## Table of contents

* [Five-step introduction](getting-started.html)
* [Writing tests with Hspec](writing-specs.html)
* [Setting expectations](expectations.html)
* [Using QuickCheck with Hspec](quickcheck.html)
* [Interoperability with HUnit](hunit.html)
* [Automatic spec discovery](hspec-discover.html)
* [Parallel spec execution](parallel-spec-execution.html)

## Other resources

* [Hspec on GitHub](https://github.com/hspec/hspec)
* [Hspec on Hackage](http://hackage.haskell.org/package/hspec)
* [API documentation](http://hackage.haskell.org/packages/archive/hspec/latest/doc/html/Test-Hspec.html)
* [SmallCheck integration](http://hackage.haskell.org/package/hspec-smallcheck)
* [Vim syntax file for Hspec](https://github.com/hspec/hspec.vim#readme)
* [A report of Hspec's behavior](report.html)

## Support

Want to chat? `/join #hspec` on freenode!
{'fraction_non_alphanumeric': 0.13776978417266186, 'fraction_numerical': 0.0, 'mean_word_length': 5.032537960954447, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 11, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5678396', 'n_tokens_mistral': 925, 'n_tokens_neox': 878, 'n_words': 237}