7

これが私が持っているものです:

spec :: Spec
spec = do
  manager <- runIO newManager

  it "foo" $ do
    -- code that uses manager

  it "bar" $ do
    -- code that usees manager

のドキュメントでは、仕様ツリーを構築する必要がないため、runIOおそらく代わりに使用する必要があることが示唆されています。仕様ツリーを作成する必要はなく、各テストを実行するために必要なだけです。私の使用例では、作成するよりも同じマネージャーを共有する方が良いテストごとに新しいもの。beforeAllmanager

スペック ツリーを構築するために 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
4

1 に答える 1