Django單元測(cè)試中Fixtures的使用方法
在使用單元測(cè)試時(shí),有時(shí)候需要測(cè)試數(shù)據(jù)庫(kù)中有數(shù)據(jù),這時(shí)我們可以使用Django的Fixtures來(lái)生成測(cè)試數(shù)據(jù)。
在對(duì)Django項(xiàng)目做單元測(cè)試時(shí),我們需要一些初始的數(shù)據(jù)來(lái)作為檢測(cè)結(jié)果的依據(jù),那么對(duì)于我們已經(jīng)有正式數(shù)據(jù)庫(kù)的模塊來(lái)說(shuō),使用Fixture載入數(shù)據(jù)是簡(jiǎn)單有效的方法。
首先,你需要一份json格式的數(shù)據(jù)文件,Django對(duì)此提供了很好的支持—dumpdata 命令:
python manage.py dumpdata myapp >myapp/fixtures/myapp.json # 這個(gè)命令將幫助你把數(shù)據(jù)庫(kù)中myapp 導(dǎo)入到myapp/fixtures/test.json中 # 這個(gè)myapp可以沒(méi)有,會(huì)把數(shù)據(jù)庫(kù)所有數(shù)據(jù)生成Json文件
基礎(chǔ)配置
在settings.py 中配置如下內(nèi)容:
FIXTURE_DIRS = ('/path/to/api/fixtures/',)
接著在test.py中 加入:
fixtures = ['test.json']
最后么當(dāng)然是運(yùn)行test命令了:
./manage.py test
示例代碼
# coding=utf-8
from __future__ import unicode_literals
import json
from rest_framework import status
from rest_framework.test import APITestCase
class DjangoUnittest01(APITestCase):
fixtures = ["my_test.json"]
def setUp(self):
data = {
"username": 't1',
"password": 'admin123',
"code": 666,
}
self.client.post('/base/admin/login/', data)
def test_usergroup_user_information(self):# 以test開(kāi)頭的方法將會(huì)執(zhí)行
url = '/base/admin/teacher/usergroup/21/user/4/information/?otype=soldier'
response = self.client.get(url)
data = {
"update_date": "2018-05-31 16:22:55",
"task": "196311177981753978",
"otype": "soldier",
"task_name": "f_test1",
"progress": 1.0,
"id": 871
}
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertDictEqual(response.data["results"][0], data)
測(cè)試用例通過(guò)
Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 3.863sOK
Destroying test database for alias 'default'...
常用斷言
assertEqual(a, b) a == b assertNotEqual(a, b) a != b assertTrue(x) bool(x) is True assertFalse(x) bool(x) is False assertIs(a, b) a is b assertIsNot(a, b) a is not b assertIsNone(x) x is None assertIsNotNone(x) x is not None assertIn(a, b) a in b assertNotIn(a, b) a not in b assertIsInstance(a, b) isinstance(a, b) assertNotIsInstance(a, b) not isinstance(a, b) assertListEqual(a, b) lists assertTupleEqual(a, b) tuples assertDictEqual(a, b) dicts
到此這篇關(guān)于Django單元測(cè)試中Fixtures用法詳解的文章就介紹到這了,更多相關(guān)Django Fixtures內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mac PyCharm中的.gitignore 安裝設(shè)置教程
這篇文章主要介紹了Mac PyCharm中的.gitignore 安裝設(shè)置教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Python實(shí)現(xiàn)葵花8號(hào)衛(wèi)星數(shù)據(jù)自動(dòng)下載實(shí)例
這篇文章主要為大家介紹了Python實(shí)現(xiàn)葵花8號(hào)衛(wèi)星數(shù)據(jù)自動(dòng)下載實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Python實(shí)現(xiàn)兩種稀疏矩陣的最小二乘法
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)的兩種稀疏矩陣最小二乘法lsqr和lsmr,前者是經(jīng)典算法,后者來(lái)自斯坦福優(yōu)化實(shí)驗(yàn)室,據(jù)稱可以比lsqr更快收斂,感興趣的可以了解一下2023-02-02
python實(shí)現(xiàn)發(fā)送QQ郵件(可加附件)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)發(fā)送QQ郵件,可添加附件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12
符合語(yǔ)言習(xí)慣的 Python 優(yōu)雅編程技巧【推薦】
Python最大的優(yōu)點(diǎn)之一就是語(yǔ)法簡(jiǎn)潔,好的代碼就像偽代碼一樣,干凈、整潔、一目了然。這篇文章給大家介紹Python 優(yōu)雅編程技巧,感興趣的朋友跟隨小編一起看看吧2018-09-09
Python對(duì)Excel兩列數(shù)據(jù)進(jìn)行運(yùn)算的示例代碼
本文介紹了如何使用Python中的pandas庫(kù)對(duì)Excel表格中的兩列數(shù)據(jù)進(jìn)行運(yùn)算,并提供了詳細(xì)的代碼示例,感興趣的朋友跟隨小編一起看看吧2024-04-04
使用OpenCV實(shí)現(xiàn)讀取和顯示圖像與視頻
OpenCV 是一個(gè)強(qiáng)大的計(jì)算機(jī)視覺(jué)庫(kù),廣泛應(yīng)用于圖像處理和視頻處理等領(lǐng)域,本文將詳細(xì)介紹如何使用 OpenCV 在 Python 中讀取和顯示圖像以及視頻,希望對(duì)大家有所幫助2024-11-11

