我有一個關于使用 pytest 的問題。這些是我的第一次測驗。我有 2 個要測驗的視圖(最簡單的方法)。
意見:
class MenuView(View):
def get(self, request):
return render(request, 'diet_app/menu.html')
class CuisineDetailsView(View):
def get(self, request, id):
cuisine = Cuisine.objects.get(id=id)
recipes = cuisine.recipe_set.all()
return render(request, 'diet_app/cuisine_details.html', {'cuisine': cuisine, 'recipes': recipes})
這是我的測驗:
def test_menu(client):
url = reverse('menu')
response = client.get(url)
assert response.status_code == 200
@pytest.mark.django_db
def test_cuisine_details_view(client):
url = reverse('cuisine-details')
response = client.get(url)
assert response.status_code == 200
網址:
path('menu/', MenuView.as_view(), name='menu'),
path('cuisine_details/<int:id>/', CuisineDetailsView.as_view(), name='cuisine-details'),
第一次測驗(選單視圖)作業正常
第二次測驗(菜品詳情視圖)顯示錯誤
.NoReverseMatch: Reverse for 'cuisine-details' with no arguments not found. 1 pattern(s) tried: ['cuisine_details\\/(?P<id>
我知道我可能應該放一些 ID 引數,但嘗試了幾個選項并且沒有成功。將不勝感激任何幫助/建議
uj5u.com熱心網友回復:
您必須將idas 引數傳遞給reverse函式。
@pytest.mark.django_db
def test_cuisine_details_view(client):
url = reverse('cuisine-details', kwargs={'id': 123})
response = client.get(url)
assert response.status_code == 200
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/430795.html
