20 lines
727 B
Haskell
20 lines
727 B
Haskell
|
--------------------------------------------------------------------------------
|
||
|
module Spec where
|
||
|
--------------------------------------------------------------------------------
|
||
|
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 :: Integer)
|
||
|
|
||
|
it "returns the first element of an arbitrary list" $
|
||
|
property $ \x xs -> head (x:xs) == (x :: Integer)
|
||
|
|
||
|
it "throws an exception if used with an empty list" $ do
|
||
|
evaluate (head []) `shouldThrow` anyException
|