Slim3 でログイン必須のコントローラーやサービスをテストする方法

Slim3 で、ログイン必須のコントローラーやサービスをテストする方法が分かりにくかったので、やり方をメモしておきます。


まぁ、やり方は簡単で、tester.environment の setEmail と setAttributes を使うだけなんですけどね。

// ログイン
Map<String, Object> attrs = new HashMap<String, Object>();
attrs.put("com.google.appengine.api.users.UserService.user_id_key", "1");
tester.environment.setAttributes(attrs);
tester.environment.setEmail("example@gmail.com");
        
// ログアウト
tester.environment.setEmail(null);
tester.environment.setAttributes(null);

これで、ログイン/ログアウト状態でのテストができます。


上記のコードを毎回書くのは面倒なので、Slim3 の tester に login/logout メソッドがあった方がいいと思うんですが、どうでしょう?Python の Kay Framework にはあるから、Slim3 にも同じようなやつが欲しいですね。