5

ユーザーをログインさせたくないいくつかの Django ビューで使用するために、次のデコレータを作成しました ( registerforget-passwordなど)。

def not_logged_in(view, redirect_url=None):
    def _wrapper(request, *args, **kwargs):
        if request.user.is_authenticated():
            return HttpResponseRedirect(
                redirect_url or '/'
            )
        return view(*args, **kwargs)

    return _wrapper

それができたら、簡単に書くことができます:

@not_logged_in
def register(request):
    ...

not_logged_inそれを使用しているビューの単体テストを作成しましたが、問題なく動作していますが、関数のみを単体テストする最良の方法は何でしょうか?

4

1 に答える 1

3

オブジェクトを簡単にモックしてからrequest、デコレーターで簡単な関数を装飾し、そのリクエストにパラメーターを渡すことができると思います。

また、_wrapper実際には未使用のrequestパラメーターがないと思いますか?

于 2012-04-14T03:44:13.237 に答える