5

我编写了以下装饰器,用于一些我不希望用户登录的 Django 视图(如registerforgot-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 回答