As I know, there is no cucumber analogue for Haskell. Closest to what you are looking for is probably HSpec, which is RSpec-ish.
Here is an example, verbatim from the HSpec website :
import Test.Hspec import Test.QuickCheck import Control.Exception (evaluate) main :: IO () main = hspec $ do describe "Prelude.head" $ do it "returns the first element of a list" $ do head [23 ..] `shouldBe` (23 :: Int) it "returns the first element of an *arbitrary* list" $ property $ \x xs -> head (x:xs) == (x :: Int) it "throws an exception if used with an empty list" $ do evaluate (head []) `shouldThrow` anyException
What produces
Prelude.head - returns the first element of a list - returns the first element of an *arbitrary* list - throws an exception if used with an empty list
source share