specs2でテスト実行前に共通の処理をしたい


ログイン前提のAPIたちのテストケースを作成したいのですが、前段としてログイン処理が必要になります。  
テスト実行前にログイン処理をして、その戻り値(セッションID)を使い回してテストケースを実行する必要があるのですがどうすればよいでしょうか？  
ログイン処理は一回だけで済ませたいです。  
このまま実行すると`Could not create an instance of HogeSpec`とインスタンス化できないと言われてしまいます。

[code]

    class HogeSpec extends Specification {
    
      // このuserSessionIdを各テストケースで使いたい
      val userSessionId = BaseSpec.beforeAuth()
    
      "hogeAPIのテスト" should {
        "ステータス200が返ってくること" in {
          // do something
          // userSessionIdを使ってAPIをテストしたい
        }
      }
    
      "fugaAPIのテスト" should {
        "ステータス200が返ってくること" in {
          // do something
          // userSessionIdを使ってAPIをテストしたい
        }
      }
    }
    
[/code]




自己解決しました。

`lazy`で遅延評価にすることでエラーの回避ができました。  
これでuserSessionIdを使い回せるようになりました。  
特別`BeforeExample`などを使う必要はありませんでした。

[code]

    - val userSessionId = BaseSpec.beforeAuth()
    + lazy val userSessionId = BaseSpec.beforeAuth()
    
[/code]

こちらの解答が参考になったので共有します。  
<https://stackoverflow.com/questions/21830495/specs2-could-not-create-an-
instance>

