Django单元测试中Fixtures用法

在使用单元测试时,有时候需要测试数据库中有数据,这时我们可以使用Django的Fixtures来生成测试数据。

基础配置

  1. 在settings.py 中配置如下内容:
<code>FIXTURE_DIRS = ('/path/to/api/fixtures/',)/<code>
  1. 在要测试的app中,增加目录fixtures
  2. 在新增的fixtures目录下,新建文件myapp.json,文件名自己定,后缀必须是.json。

配置myapp.json

文件中内容格式如下,实际使用时,要删除掉实际情况,使用数据,并删除掉注释,如果需要多条数据,可以多写几个{}的内容:

<code>[   {
"model": "myapp.user", # 数据库名
"pk": "a864340d850f484bb89ea2981047bc5e", # 要导入的数据
"fields": { # 要导入的字段,字段名跟数据库(models)内的字段一样,值,根据实际需要设置
"username": "zhangsan",
"user_num": "000",
"zh_name": "张三",
"mobile": "18712345678",
"mail": "[email protected]",
"is_deleted": false,
"create_time": "2013-01-16",
"update_time": "2013-01-16"
}
},
]/<code>

配置tests.py

<code>class Test_user_name(TestCase):
'''测试人员名称是否正常'''
fixtures = ['myapp.json'] # 在这里选择你要导入要测试的用户数据

def test_user_name(self):
user = User.objects.get(username='zhangsan')
self.assertEqual(user.name, "zhangsan")/<code>

下边就可以运行你的单元测试了

提醒:

如果你配置了测试的Models 的Signals,这部分的代码也会被执行

本文原创于http://bigyoung.cn,欢迎大家访问。


分享到:


相關文章: