2 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果要檢查響應(yīng)上下文中的內(nèi)容,首先需要使用響應(yīng)對(duì)象(而您不是,您只是在創(chuàng)建視圖的實(shí)例,而不是獲取視圖生成的響應(yīng))。我不知道,但我相信你會(huì)找到如何使我的答案適應(yīng)你的用例。RequestFactory
所以,它會(huì)像這樣:
def test_your_context(self):
user = User.objects.get(pk=1)
self.client.force_login(user) # because of the login_required decorator
response = self.client.get(reverse("browse_clients"))
assert response.context['your_context_key'] == "Anything you want to check"
只需做幾件事就可以進(jìn)一步說(shuō)明:
你的方法的定義對(duì)我來(lái)說(shuō)似乎沒(méi)問(wèn)題,
get_context_data
如果您使用基于類(lèi)的視圖,如果您要檢查用戶是否登錄,我會(huì)建議您也使用基本視圖(LoginRequiredMixin)
你給你的網(wǎng)址起了個(gè)名字,所以只是使用它,而不是寫(xiě)它的原始形式(這就是我在答案中所做的)。

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
如果使用測(cè)試客戶端,它將負(fù)責(zé)運(yùn)行中間件和初始化視圖。
當(dāng)您直接使用和調(diào)用視圖時(shí),URL 處理程序不會(huì)運(yùn)行,因此由您來(lái)傳遞 kwargs。setup()
def test_return_client_ordered_by_inscription_date(self):
view = BrowseClients()
view.setup(self.request, order='inscription')
context = view.get_context_data()
添加回答
舉報(bào)