je suis un noob et haskell ont des problèmes avec des fonctions de test avec de l'acide-states.This ist mon structure de données acide-State Test avec hspec
data UserState = UserState { name :: String }
deriving (Eq, Ord, Read, Show, Data, Typeable)
et c'est la fonction que je veux tester:
setName :: String -> Update UserState String
setName n =
do [email protected]{..} <- get
let newName = n
put $ c { name = newName }
return newName
$(makeAcidic ''UserState ['setName ])
Ceci est mon test:
spec :: Spec
spec = do
describe "test" $
it "test" $ do
setName "Mike" `shouldBe` UserState{ name = "Mike"}
Je ne sais pas comment modéliser mes valeurs attendues. UserState{ name = "Mike"}
ne fonctionne pas
Je ne sais pas ce que vous voulez tester. Si je voulais tester le comportement 'setName', j'appliquerais la mise à jour (en utilisant la fonction' update'), puis interrogerais le nouveau 'UserState' et le comparerais avec mon' UserState' attendu –
@ Jean-BaptistePotonnier Mais comment puis-je modell mon UserState attendu? Quelque chose comme ça? "UserState {name =" Mike "}" – boddAh234