小编典典

如何在Django中模拟用户和请求

python

我有与请求对象或用户对象进行交互的Django代码。例如:

foo_model_instance = models.get_or_create_foo_from_user(request.user)

如果要使用django python
shell进行测试或在单元测试中进行测试,您将在其中传递什么?这里只是一个User对象即可,但是对模拟请求对象的需求也经常出现。

对于外壳或单元测试:

  • 您如何嘲笑用户?
  • 您如何模拟请求?

阅读 138

收藏
2021-01-20

共1个答案

小编典典

对于请求,我将使用Django随附的RequestFactory

from django.test.client import RequestFactory
rf = RequestFactory()
get_request = rf.get('/hello/')
post_request = rf.post('/submit/', {'foo': 'bar'})

对于用户,我将按照@ozan的建议使用django.contrib.auth.models.User,并可能与factory
boy一起使用
以提高速度(对于factory
boy,您可以选择不保存到DB)

2021-01-20