我编写了以下装饰器,用于某些我不希望用户登录的 Django View (例如 register 和 forgot-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):
...
我已经为使用它的 View 编写了单元测试,并且它可以正常工作,但我想知道单独测试 not_logged_in
函数的最佳方法是什么?
最佳答案
我想您可以轻松地模拟 request
对象,然后用您的装饰器装饰一个简单的函数并将该请求传递给一个参数。
我还假设您的 _wrapper
确实没有未使用的 request
参数?
关于python - Python 中的单元测试装饰器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10149058/