从酸状态查询中检索纯值



这似乎很容易,但是如果我使用AcidState的Data.Acid.Memory.Pure模块,我如何从查询中获取纯值。我想我可以将问题概括为"我如何从更新 monad 中获得任何价值?您会看到,我正在尝试编写一个测试来执行以下普通任务:

  • 使用对象更新纯 AcidState
  • 使用 IxSet 退出状态的查询
  • 比较查询的对象和更新返回的对象以实现等效性。

我需要从中得到一个纯粹的"布尔值",以便与测试框架的集成变得容易。起初我以为我会简单地使用Control.Monad.State的runState,但我错了(或者只是做得不对)。我该怎么办?

由于你使用的是Data.Acid.Memory.Pure,你可以使用该模块中的updatequeryupdate_函数(而不是来自Data.Acid的函数)来纯粹地查看事件的结果。 与常规的、不纯acid-state一样,您不是简单地"运行UpdateQuery monads",您必须先将它们转换为事件。 使用 Data.Acid.Memory.Pure ,这意味着您只需用 Event 的构造函数包装它们。

相关内容

  • 没有找到相关文章