什么是Django中assertDatabaseHas的等价物

时间:2018-02-17 20:59:36

标签: python django testing

来自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中是否存在类似内容?

1 个答案:

答案 0 :(得分:2)

对此没有具体的断言。

您可以使用常规assertTrueexists过滤器:

self.assertTrue(User.objects.filter(id=10).exists())

(通常情况下,您使用带有ID查询的get(),但这不允许exists(),并且您必须抓住DoesNotExist异常(如果它是&#39} ;没找到。)