2012-04-23 23 views

Trả lời

64

Xem this solution:

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) 
+4

Mã này đã thực sự được đưa vào Django kể từ phiên bản 1.3. Xem [tài liệu] (https://docs.djangoproject.com/en/1.4/topics/testing/#django.test.client.RequestFactory) tại đây. –

+1

Nếu tôi thấy điều này một cách chính xác, yêu cầu giả mạo đó từ nhà máy sẽ không được lọc qua phần mềm trung gian. –

+3

Tài liệu cập nhật [link] (https://docs.djangoproject.com/en/1.9/topics/testing/advanced/#example) – dragonx

0

Bạn có nghĩa def getEvents(request, eid) phải không?

Với Django unittest, bạn có thể sử dụng from django.test.client import Client để thực hiện yêu cầu.

Xem ở đây: Test Client

@ câu trả lời Secator của là hoàn hảo vì nó tạo ra một đối tượng giả mà thực sự được ưa thích cho một unittest thực sự tốt. Nhưng tùy thuộc vào mục đích của bạn, nó có thể dễ dàng hơn để chỉ sử dụng các công cụ kiểm tra của Django.

11

Sử dụng RequestFactory để tạo yêu cầu giả.

+1

Cảm ơn bạn đã liên kết tới tài liệu –

13

Nếu bạn đang sử dụng khách hàng kiểm tra django (from django.test.client import Client), bạn có thể truy cập theo yêu cầu từ đối tượng phản ứng như thế này:

from django.test.client import Client 

client = Client() 
response = client.get(some_url) 
request = response.wsgi_request 

hoặc nếu bạn đang sử dụng django.TestCase (from django.test import TestCase, SimpleTestCase, TransactionTestCase), bạn có thể truy cập dụ khách hàng trong bất kỳ testcase chỉ bằng cách gõ self.client:

response = self.client.get(some_url) 
request = response.wsgi_request 
Các vấn đề liên quan