我已经创建了一个测试,它会向一个url发送一个post请求,并且针对该请求调用的方法会生成很少的对象,我的问题是如何获取这些创建的对象?
def test_post(self):
response = self.c.post('/url/', {'name' : 'postname', 'content' : 'abc'})
虽然我的视图逻辑看起来像
Class MakePost():
def makePost(self, request, data):
object = Class()
object2 = AnotherClass()
return object
def get_success_url(self, request, user):
return '/post/'
答案 0 :(得分:0)
您可以在测试中检查您创建的对象,如:
def test_post(self):
response = self.c.post('/url/', {'name' : 'postname', 'content' : 'abc'})
# assume the above call has created an Post and a Category objects. Let's check them out.
category = Category.objects.get(name='category')
post = Post.objects.get(name='postname')
self.assertEqual(post.content, 'abc')
self.assertEqual(post.category, category)
由于您的数据库在每个test_*
方法之前被清理并且不包含任何对象(如果您使用任何对象,则除了fixture之外),将只有一个具有该名称的对象。