Django4.0 進(jìn)階測試主題-測試基于類的視圖

2022-03-17 11:50 更新

為了在請求/響應(yīng)周期之外測試基于類的視圖,你必須確保它們配置正確,在實(shí)例化之后調(diào)用 ?setup()?。

例如,假設(shè)基于類的視圖如下:

from django.views.generic import TemplateView


class HomeView(TemplateView):
    template_name = 'myapp/home.html'

    def get_context_data(self, **kwargs):
        kwargs['environment'] = 'Production'
        return super().get_context_data(**kwargs)

你可以直接測試 ?get_context_data()? 方法,首先實(shí)例化視圖,然后向 ?setup()? 傳遞一個(gè) ?request?,然后再進(jìn)行測試代碼。

from django.test import RequestFactory, TestCase
from .views import HomeView


class HomePageTest(TestCase):
    def test_environment_set_in_context(self):
        request = RequestFactory().get('/')
        view = HomeView()
        view.setup(request)

        context = view.get_context_data()
        self.assertIn('environment', context)


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號