Haskell 应用自动化测试实战
1. 测试概述
自动化测试对于 Haskell 应用至关重要,它要求应用架构具备可测试性。我们采用类型类将协议(端口)与实际实现(适配器)分离,在测试中模拟协议以测试各种场景。选择的测试框架是 hspec,它提供了易于理解的 API 来构建测试用例。对于 WAI 应用的测试,使用 hspec - wai 和 hspec - wai - json 包,它们提供了执行 HTTP 请求和断言 HTTP 响应的高级语法。
2. 各模块测试实现
2.1 测试 Adapter.Redis.Auth
测试代码位于 test/Adapter/Redis/AuthSpec.hs 文件中。该模块仅提供两个函数,测试主要针对 findUserIdBySessionId 函数:
module Adapter.Redis.AuthSpec where
import ClassyPrelude
import Test.Hspec
import qualified Database.Redis as R
import Adapter.Redis.Auth
spec :: Spec
spec = beforeAll initDB $
describe "findUserIdBySessionId" $ do
it "should return Nothing if session is invalid" $
runTestApp (findUserIdBySessionId "invalidSession")
超级会员免费看
订阅专栏 解锁全文
13

被折叠的 条评论
为什么被折叠?



