gpt4 book ai didi

django - 为 Django View get_context_data() 方法编写测试

转载 作者:行者123 更新时间:2023-12-02 11:50:03 26 4
gpt4 key购买 nike

我正在为 View 编写一个测试,在其中更新上下文以将附加信息传递给模板。

问题

在编写测试时,我无法从 RequestFactory 访问上下文。

代码

查看

class PlanListView(HasBillingRightsMixin, ListView):
"""Show the Plans for user to select."""

headline = "Select a Plan"
model = Plan
template_name = "billing/plan_list.html"

def get_context_data(self, *args, **kwargs):
context = super(PlanListView, self).get_context_data(**kwargs)
context.update({
"customer": self.get_customer()
})
return context

测试

class TestPlanListView(BaseTestBilling):

def setUp(self):
super(TestPlanListView, self).setUp()
request = self.factory.get('billing:plan_list')
request.user = self.user
request.company_uuid = self.user.company_uuid

self.view = PlanListView()
self.view.request = request
self.response = PlanListView.as_view()(request)

def test_get_context_data(self, **kwargs):
context = super(self.view, self).get_context_data(**kwargs)
context.update({"customer": self.view.get_customer()})
self.assertEqual(
self.view.get_context_data(),
context
)

问题

如何测试 View 的 get_context_data() 方法?

最佳答案

使用 test client让您可以访问您的上下文。

def test_context(self):
# GET response using the test client.
response = self.client.get('/list/ofitems/')
# response.context['your_context']
self.assertIsNone(response.context['page_obj'])
self.assertIsNone(response.context['customer']) # or whatever assertion.
.....

关于django - 为 Django View get_context_data() 方法编写测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com