针对JSON API的Haskell功能测试

Sea*_*ess 9 testing haskell unit-testing

我正在编写一个Haskell JSON API,我想写一些测试.事情真的是IO很重,所以我认为编写一些功能测试最有意义:(添加一个Foo,看看/ foos /返回它)等等.

我当然读过关于QuickCheck的内容,但它似乎专注于测试纯代码.

我应该如何编写/运行需要测试API的功能测试?如果重要,我正在使用Scotty/WAI.虽然一个例子会很棒,但是一对好的链接和一些建议会很好.

Tik*_*vis 3

我从未使用过它,但 QuickCheck 实际上确实支持测试单子代码。有关更多信息,请参阅使用 Monadic QuickCheck 测试 IO 操作。如果您的 api 有一些易于表达的不变量,这可能是测试它的好方法。(根据我使用纯代码的经验,QuickCheck 涵盖了比我能想到的更多的极端情况,这使得它非常有用。)