我最近开始在我的一个项目中使用 STM 作为一些位,但我无法弄清楚如何测试它。
我在这些函数中没有 IO,并希望我可以编写 QuickCheck 属性来测试事物,但是“原子地”(STM a -> IO a)似乎是从 STM monad 中获取任何东西的唯一方法。
这可能吗,还是我应该只用 HUnit 编写测试?
我最近开始在我的一个项目中使用 STM 作为一些位,但我无法弄清楚如何测试它。
我在这些函数中没有 IO,并希望我可以编写 QuickCheck 属性来测试事物,但是“原子地”(STM a -> IO a)似乎是从 STM monad 中获取任何东西的唯一方法。
这可能吗,还是我应该只用 HUnit 编写测试?
您可以使用 quickcheck 测试 IO 操作:http: //hackage.haskell.org/packages/archive/QuickCheck/2.4.1.1/doc/html/Test-QuickCheck-Monadic.html