2015-03-21 1 views
0

J'ai une déclaration que je dois vérifier la valeur de retour de:Test de IO valeur de retour

> let a = tRunUmeQuery (selectByCount "Word" "Acoustic" "=" ((toInteger 1):[]) Strict) testdb 
> :t a 
a :: IO [[SqlValue]] 

Alors, je voudrais vous assurer que a est une liste avec une longueur d'exactement 6 (IO 6 puis).

> fmap length a 
6 

À quoi devrait ressembler un testCase qui vérifie cela?

Répondre

1

Désolé, la solution n'était pas si compliquée (j'ai juste réussi à la rendre compliquée dans ma tête).

ucg :: TestTree 
ucg = testGroup "selectByCount" 
    [ testCase "2 Words dominated by exactly 1 Acoustic" $ do 
     r <- fmap length $ tRunUmeQuery (selectByCount "Word" "Acoustic" "=" ((toInteger 1):[]) Strict) testdb 
     assertEqual "selectByCount: 1 Acoustic in Word" 6 r 
    ] 

Ce TestGroup fonctionne très bien.