我是Django框架的新手,我正在尝试为项目中的应用编写一些测试。目前,我有两个应用hoardings
和clients
都具有相同的基本CRUD功能。出于测试目的,我已经创建了一个测试目录,它看起来像这样
clients
- tests
-__init__.py
- test_views.py
这就是我为两个应用程序维护测试的方式。test_views.py具有以下代码,
from django.test import TestCase
from django.urls import reverse
from hoardings.models import State, City
from clients.models import Client
class ClientManagementTest(TestCase):
def setUp(self):
self.state = State.objects.create(desc='West Bengal')
self.city = City.objects.create(state=self.state, desc='Kolkata')
self.client = Client()
def test_client_creation_form_can_be_rendered(self):
response = self.client.get(reverse('clients:create'))
# Check that the response is 200 OK.
self.assertEqual(response.status_code, 200)
# check if csrf token is present
self.assertContains(response, 'csrfmiddlewaretoken')
# Check that the response contains a form.
self.assertContains(response, '<form')
# assert the context values
self.assertIn('url', response.context)
self.assertIn('heading', response.context)
self.assertIn('states', response.context)
self.assertIn('client_types', response.context)
您可以在设置方法中看到,我正在创建一个Client
对象,该对象用于发送请求。但是,每次运行测试时,我都会遇到以下错误,
错误:test_client_creation_form_can_be_rendered (tests.test_views.ClientManagementTest) -------------------------------------------------- --------------------追溯(最近一次通话):文件 “ /home/ropali/Development/PythonWorkspace/hms_venv/hms/clients/tests/test_views.py”, 第19行,在test_client_creation_form_can_be_rendered响应= self.client.get(reverse('clients:create'))AttributeError:'Client' 对象没有属性“获取”
据我了解,这意味着未创建客户端对象,因此它找不到get属性,并且我也收到POST请求的类似错误。
但是有一件事让我感到困惑,我对hoardings
应用有类似的测试设置,它运行得很好。
谁能帮我在这里做错什么,请让我知道您是否需要其他详细信息。