在使用單元測試時,有時候需要測試數據庫中有數據,這時我們可以使用Django的Fixtures來生成測試數據。
基礎配置
- 在settings.py 中配置如下內容:
<code>FIXTURE_DIRS = ('/path/to/api/fixtures/',)/<code>
- 在要測試的app中,增加目錄fixtures
- 在新增的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,歡迎大家訪問。
閱讀更多 bigyoung 的文章