0
我正在尝试为我的第一个Django应用程序编写测试,并且当我浏览视图时,我似乎无法测试对数据库所做的更改。这是我的一个测试的例子。无法通过Django测试对数据库的更改测试
def test_vote(self):
self.set_up()
idea = Idea.objects.get(title="Hello people")
c = Client()
c.login(email="[email protected]", password="baxter")
r = c.post(reverse("ideas:up_vote", kwargs={'pk':idea.pk}), follow=True)
self.assertEqual(r.status_code, 200)
self.assertEqual(idea.votes, 1)
该视图假设up_vote一个想法对象,这是一个简单的视图。
def like_view(request, **kwargs):
idea = Idea.objects.get(pk = kwargs['pk'])
idea.votes += 1
idea.save()
return HttpResponseRedirect(reverse('ideas:list'))
我正在使用SQLite3数据库。
if DEBUG:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'django',
'USER': env('RDS_USERNAME'),
'PASSWORD': env('RDS_PASSWORD'),
'HOST': env('RDS_HOST'),
'PORT': '5432',
}
}
DEBUG = True也。每次我运行测试时都没有提到idea.votes = 0而不是1,这就是我想要得到的结果。我不确定我是否正在测试这一切都是错误的还是什么。任何帮助将非常感谢。