来自Laravel背景学习Django。如果我的问题很幼稚,请原谅我。
response = self.client.delete(reverse('details'), kwargs={'pk':pk}, format="json")
self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
上面的测试通过,我想进一步尝试检查数据库是否真的有这个项目,当然我可以查询数据库并尝试匹配计数。 但是在Laravel中,我使用这些方法来检查记录的存在/不存在。
assertDatabaseHas('users', ['id' => 10]); //asserts true if record is present in users table.
assertDatabaseMissing('users', ['id' => 10]); // asserts true if record is not present in users table
Django中是否存在类似内容?
答案 0 :(得分:2)
对此没有具体的断言。
您可以使用常规assertTrue
和exists
过滤器:
self.assertTrue(User.objects.filter(id=10).exists())
(通常情况下,您使用带有ID查询的get()
,但这不允许exists()
,并且您必须抓住DoesNotExist异常(如果它是&#39} ;没找到。)