Testing 测试处理程序-示例

Testing 测试处理程序-示例,testing,yesod,persist,Testing,Yesod,Persist,我花了几个小时试图得到一个基本的测试框架来测试Yesod处理程序。我还有些麻烦。看一个完整的工作示例会很有用,其中包括与数据库的交互 有人能告诉我网络上的例子吗?理想情况下是一个开源的yesod项目,所以我可以看到整个脚手架。我从不同的来源找到了一些零碎的东西,但到目前为止,它们对我没有多大帮助。我认为它们不是特别好的测试用例(有很多重复,而且数据库不会在测试用例之间自动删除),但是你可以看看我为它们制作的。整个项目都是开源的 以下是一个示例: homeSpecs :: Spec homeSpe

我花了几个小时试图得到一个基本的测试框架来测试Yesod处理程序。我还有些麻烦。看一个完整的工作示例会很有用,其中包括与数据库的交互


有人能告诉我网络上的例子吗?理想情况下是一个开源的yesod项目,所以我可以看到整个脚手架。我从不同的来源找到了一些零碎的东西,但到目前为止,它们对我没有多大帮助。

我认为它们不是特别好的测试用例(有很多重复,而且数据库不会在测试用例之间自动删除),但是你可以看看我为它们制作的。整个项目都是开源的

以下是一个示例:

homeSpecs :: Spec
homeSpecs =
    ydescribe "These are some example tests" $ do

        yit "loads the index and checks it looks right" $ do
            _ <- runDB $ rawExecute "TRUNCATE TABLE hack_day, project;" []
            get HackDayR
            statusIs 200
            htmlAnyContain "h2" "New Hackday"

        yit "shows the current hackday" $ do
            _ <- runDB $ rawExecute "TRUNCATE TABLE hack_day, project;" []
            currentTime <- liftIO $ getCurrentTime
            _ <- runDB $ insert $ HackDay { hackDayTitle = "testTitle"
                                          , hackDayCreated = currentTime
                                          , hackDayVotingClosed = False }
            get HackDayR
            htmlAllContain ".currentHackday" "testTitle"
homeSpecs::Spec
家谱=
Y描述“这些是一些示例测试”$do
yit“加载索引并检查其外观是否正确”$do

_谢谢。我的问题似乎在别处,因为我看不出你的设置和我的有什么不同。我会让它开放一两天,然后接受。@unohoo您的项目公开吗?