尝试对路线进行单元测试时出现问题。Scotty、Persistent 和 Hspec-WAI。
与 Yesod 或 Spock 不同,Scotty 没有存储数据库处理程序的好地方。我通过一个大规模的“做”来启动数据库,将数据库池保持为局部变量,然后使用该变量来实现它。
app :: IO ()
app = do
-- allocate_database $ \pool
-- scotty 8080 $do
-- handleSomeRoute pool
但是,Hspec-WAI 希望它在 IO 申请表中。
scottyApp :: ScottyM () -> IO Application
有没有一种理智的方法可以将数据库连接池注入 scottyApp ?