这是我所拥有的:
spec :: Spec
spec = do
manager <- runIO newManager
it "foo" $ do
-- code that uses manager
it "bar" $ do
-- code that usees manager
的文档runIO
建议我可能应该使用它beforeAll
,因为我不需要manager
构建规范树,我只需要它来运行每个测试,在我的用例中,最好让它们共享同一个管理器而不是创建每个测试一个新的。
如果您不需要 IO 操作的结果来构建规范树,那么 beforeAll 可能更适合您的用例。
beforeAll :: IO a -> SpecWith a -> Spec
但我不知道如何从测试中访问经理。
spec :: Spec
spec = beforeAll newManager go
go :: SpecWith Manager
go = do
it "foo" $ do
-- needs "manager" in scope
it "bar" $ do
-- needs "manager" in scope