我对单元测试非常陌生,并且可能做错了什么,但是当我模拟帖子以通过管理后端更新模型时,似乎save_model
没有调用我在 AdminForm 中的方法。我正在尝试测试这种方法 - 我做错了什么?
我的第二个不太相关的问题通常是如何确保在使用单元测试时调用方法?有没有办法列出所有被击中的方法?
下面是我的测试正在运行的代码。在save_model
此模型的 AdminForm 方法中,我将此模型的foobar
属性设置为当前登录用户的用户名。下面是我的测试:
self.client = Client()
self.client.login(username='username',password='password')
# self.dict is a dictionary of field names and values for mymodel to be updated
response = self.client.post('/admin/myapp/mymodel/%d/' % self.mymodel.id, self.dict)
self.assertEqual(response.status_code,200) # passes
self.assertEqual(self.mymodel.foobar,'username') # fails
self.client.logout()
它失败了,因为它说这self.mymodel.foobar
是一个空字符串。更新前应该是这样的。foobar 没有传递任何值,self.dict
但我的save_model
方法旨在在更新发生时自行设置。还值得注意的是,我的代码工作正常并且save_model
似乎工作正常,只是我的测试失败了。由于我是 TDD 的菜鸟,我确信问题出在我的测试而不是我的代码上。想法?