これが私が持っているものです:
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