use*_*121 50 python django django-testing
我有一个功能
def getEvents(eid, request):
......
Run Code Online (Sandbox Code Playgroud)
现在我想分别为上面的函数编写单元测试(不调用视图).那么我该如何调用上面的内容呢TestCase?是否可以创建请求?
Mar*_*mro 82
请参阅此解决方案:
from django.utils import unittest
from django.test.client import RequestFactory
class SimpleTest(unittest.TestCase):
def setUp(self):
# Every test needs access to the request factory.
self.factory = RequestFactory()
def test_details(self):
# Create an instance of a GET request.
request = self.factory.get('/customer/details')
# Test my_view() as if it were deployed at /customer/details
response = my_view(request)
self.assertEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)
Ant*_*kiy 27
如果您使用的是django test client(from django.test.client import Client),则可以从响应对象访问请求,如下所示:
from django.test.client import Client
client = Client()
response = client.get(some_url)
request = response.wsgi_request
Run Code Online (Sandbox Code Playgroud)
或者如果您正在使用django.TestCase(from django.test import TestCase, SimpleTestCase, TransactionTestCase),只需键入self.client以下内容即可访问任何测试用例中的客户端实例:
response = self.client.get(some_url)
request = response.wsgi_request
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36649 次 |
| 最近记录: |