最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django單元測試中Fixtures用法詳解

 更新時間:2020年02月25日 13:56:42   作者:Young 先生  
這篇文章主要介紹了Django單元測試中Fixtures用法,通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

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

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

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

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

基礎配置

在settings.py 中配置如下內(nèi)容:

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

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

配置myapp.json

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

[ {
 "model": "myapp.user", # 數(shù)據(jù)庫名
 "pk": "a864340d850f484bb89ea2981047bc5e", # 要導入的數(shù)據(jù)
 "fields": { # 要導入的字段,字段名跟數(shù)據(jù)庫(models)內(nèi)的字段一樣,值,根據(jù)實際需要設置
  "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']  # 在這里選擇你要導入要測試的用戶數(shù)據(jù)

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

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

提醒:

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

Fixture loading

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

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

 創(chuàng)建fixture最直接的方法就是使用manage.py dumpdata.當然,這假設你的實際數(shù)據(jù)庫里已經(jīng)有數(shù)據(jù)了.

 注意:

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

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

from django.test import TestCase
from myapp.models import Animal
class 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()

這是具體發(fā)生的過程:

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

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

總結

到此這篇關于Django單元測試中Fixtures用法詳解的文章就介紹到這了,更多相關django fixtures用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python采用requests庫模擬登錄和抓取數(shù)據(jù)的簡單示例

    python采用requests庫模擬登錄和抓取數(shù)據(jù)的簡單示例

    這篇文章主要介紹了python采用requests庫模擬登錄和抓取數(shù)據(jù)的簡單示例,代碼簡單卻功能強大!需要的朋友可以參考下
    2014-07-07
  • Python數(shù)據(jù)分析之Matplotlib數(shù)據(jù)可視化

    Python數(shù)據(jù)分析之Matplotlib數(shù)據(jù)可視化

    這篇文章主要介紹了Python數(shù)據(jù)分析之Matplotlib數(shù)據(jù)可視化,Matplotlib?是?Python?中常用的?2D?繪圖庫,它能輕松地將數(shù)據(jù)進行可視化,作出精美的圖表
    2022-08-08
  • 安裝python及pycharm的教程圖解

    安裝python及pycharm的教程圖解

    本文通過圖文并茂的形式給大家介紹了安裝python及pycharm的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • 詳解Python中defaultdict的具體使用

    詳解Python中defaultdict的具體使用

    defaultdict 是一個類似字典的容器,屬于 collections 模塊, 它是字典的子類, 因此它具有詞典的所有功能,下面小編就來和大家詳細聊聊defaultdict的具體使用吧
    2023-10-10
  • python topk()函數(shù)求最大和最小值實例

    python topk()函數(shù)求最大和最小值實例

    這篇文章主要介紹了python topk()函數(shù)求最大和最小值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python獲取標準北京時間的方法

    python獲取標準北京時間的方法

    這篇文章主要介紹了python獲取標準北京時間的方法,實例分析了Python通過www.beijing-time.org的官網(wǎng)獲取標準北京時間的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 怎樣在Pandas DataFrame列中搜索值

    怎樣在Pandas DataFrame列中搜索值

    這篇文章主要介紹了怎樣在Pandas DataFrame列中搜索值問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Django JSonResponse對象的實現(xiàn)

    Django JSonResponse對象的實現(xiàn)

    本文主要介紹了Django JSonResponse對象的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 如何通過python代碼根據(jù)模板修改變量生成新yaml文件

    如何通過python代碼根據(jù)模板修改變量生成新yaml文件

    有些時候,需要根據(jù)一個yaml模板創(chuàng)建多個yaml文件實例,我們先寫一個yaml文件模板,然后通過python代碼修改模板中的變量,存儲為一個新的yaml文件,需要配合python的庫Template及ymal使用,本文給大家講解的非常詳細,需要的朋友跟隨小編一起看看吧
    2023-11-11
  • Python爬蟲 批量爬取下載抖音視頻代碼實例

    Python爬蟲 批量爬取下載抖音視頻代碼實例

    這篇文章主要介紹了Python爬蟲 批量爬取下載抖音視頻代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08

最新評論

武宁县| 出国| 红安县| 当涂县| 和平县| 山丹县| 遂溪县| 清镇市| 平邑县| 陈巴尔虎旗| 瓦房店市| 钟山县| 太白县| 芷江| 宜章县| 栾城县| 苍梧县| 古交市| 江津市| 北辰区| 永济市| 上栗县| 安福县| 舒兰市| 塘沽区| 扎赉特旗| 岑巩县| 依安县| 卓资县| 张北县| 英吉沙县| 金川县| 锦州市| 丹东市| 自治县| 鲁山县| 剑川县| 施秉县| 和林格尔县| 醴陵市| 万载县|