Я Haskell нуб и имеют проблемы с функциями тестирования с кислотно-states.This ист мой структура данныхТестирование Acid-State с hspec
data UserState = UserState { name :: String }
deriving (Eq, Ord, Read, Show, Data, Typeable)
и это функция я хочу тест:
setName :: String -> Update UserState String
setName n =
do [email protected]{..} <- get
let newName = n
put $ c { name = newName }
return newName
$(makeAcidic ''UserState ['setName ])
Это мой тест:
spec :: Spec
spec = do
describe "test" $
it "test" $ do
setName "Mike" `shouldBe` UserState{ name = "Mike"}
Я понятия не имею, как моделировать свои ожидаемые значения. UserState{ name = "Mike"}
не работает
Я не знаю, что вы хотите протестировать. Если бы я хотел протестировать поведение 'setName', я бы применил это обновление (используя функцию' update'), а затем запросил новый 'UserState' и сравнил его с моим ожидаемым' UserState' –
@ Jean-BaptistePotonnier Но как мне modell мой ожидаемый UserState? Что-то вроде этого? "UserState {name =" Mike "}" – boddAh234