亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Django單元測試中Fixtures用法詳解

瀏覽:132日期:2024-10-23 17:54:52

在使用單元測試時,有時候需要測試數據庫中有數據,這時我們可以使用Django的Fixtures來生成測試數據。

Django是一個開放源代碼的Web應用框架,由Python寫成。采用了MVT的軟件設計模式,即模型Model,視圖View和模板Template。2005年7月在BSD許可證下發布。

在對Django項目做單元測試時,經常需要生成或者導入一些初始數據。對于已經有數據存在于正式數據庫的app來說,使用Fixture 載入數據,是最簡便有效的方法。

本文通過配置myapp.json,tests.py的實例代碼給大家詳細介紹。

基礎配置

在settings.py 中配置如下內容:

FIXTURE_DIRS = (’/path/to/api/fixtures/’,)

在要測試的app中,增加目錄 fixtures在新增的 fixtures 目錄下,新建文件 myapp.json ,文件名自己定,后綴必須是 .json 。

配置myapp.json

文件中內容格式如下,實際使用時,要刪除掉實際情況,使用數據,并刪除掉注釋,如果需要多條數據,可以多寫幾個{}的內容:

[ { 'model': 'myapp.user', # 數據庫名 'pk': 'a864340d850f484bb89ea2981047bc5e', # 要導入的數據 'fields': { # 要導入的字段,字段名跟數據庫(models)內的字段一樣,值,根據實際需要設置 'username': 'zhangsan', 'user_num': '000', 'zh_name': '張三', 'mobile': '18712345678', 'mail': 'zhangsan@abc.com', 'is_deleted': false, 'create_time': '2013-01-16', 'update_time': '2013-01-16' } },]

配置tests.py

class Test_user_name(TestCase): ’’’測試人員名稱是否正常’’’ fixtures = [’myapp.json’] # 在這里選擇你要導入要測試的用戶數據 def test_user_name(self): user = User.objects.get(username=’zhangsan’) self.assertEqual(user.name, 'zhangsan')

下邊就可以運行你的單元測試了

提醒:

如果你配置了測試的Models 的Signals,這部分的代碼也會被執行

Fixture loading

如果數據庫里沒有數據,那么對于一個基于數據庫的網站來說,test case并無多大的用處.為了給測試數據庫加入測試數據更方便,django提供了載入fixtures的方法.

fixture是一系列的數據集合,django知道如何將它導入數據庫。

創建fixture最直接的方法就是使用manage.py dumpdata.當然,這假設你的實際數據庫里已經有數據了.

注意:

如果你運行過manage.py syncdb命令,那么你已經使用過fixture了--只是你不知道而已。當你使用syncdb去創建數據庫時,會創建一個叫initial_data的fixture。 其他名字的Fixture可以通過manage.py loaddata命令手動安裝.

一旦建立了一個fixture,并將它放在了某個django app的fixtures目錄中,你就可以在你的測試類里使用它了:

from django.test import TestCasefrom myapp.models import Animalclass AnimalTestCase(TestCase): fixtures = [’mammals.json’, ’birds’] def setUp(self): # Test definitions as before. call_setup_methods() def testFluffyAnimals(self): # A test that uses the fixtures. call_some_test_code()

這是具體發生的過程:

1. 在setup()運行前,django會清空數據庫,相當于你執行了syncdb。

2.然后,所有的fixture會被安裝.在例子中,django會安裝任何一個名字為mammals的JSON格式的fixture和名為birds的fixture

總結

到此這篇關于Django單元測試中Fixtures用法詳解的文章就介紹到這了,更多相關django fixtures用法內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Django
相關文章:
主站蜘蛛池模板: 娇小性色xxxxx中文 | 手机看片高清国产日韩片 | 91精品最新国内在线播放 | 精品视频免费在线观看 | 日韩欧美国产中文字幕 | 成人交性视频免费看 | 国产成人精品一区二区三在线观看 | 国产精品久久久久9999赢消 | 亚洲福利一区二区精品秒拍 | 婷婷啪啪| 亚洲国产一区二区三区最新 | 日本xxxwwxxx免费视频 | 视频办公室添的我好爽 | 欧美日韩一级片在线观看 | 亚洲精品线在线观看 | 青青草久热精品视频在线观看 | 综合久久综合 | 黄wwwwww| 亚洲不卡视频在线观看 | 92国产福利视频一区二区 | 欧美毛片a级毛片免费观 | 亚洲精品中文字幕乱码 | 美国一级黄色毛片 | julia一区福利视频在线观看 | 国产成人18黄网站在线观看网站 | 成 人色 网 站www | 国产三级在线观看视频不卡 | 综合久久久久久中文字幕 | 日本一区二区三区有限公司 | 亚洲国产系列久久精品99人人 | 爱爱黄色 | 欧洲精品码一区二区三区免费看 | 91久久国产口精品久久久久 | 精品一区二区三区的国产在线观看 | 网红毛片 | 国内精品在线视频 | 成人久久久精品乱码一区二区三区 | 国产成 人 综合 亚洲网 | 国产欧美性综合视频性刺激 | 日韩不卡毛片 | 亚洲成熟中国女人毛茸茸 |