您的位置:首页 > 编程语言 > Go语言

Django单元测试中Fixtures的使用方法

2020-04-29 12:14 826 查看

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

在对Django项目做单元测试时,我们需要一些初始的数据来作为检测结果的依据,那么对于我们已经有正式数据库的模块来说,使用Fixture载入数据是简单有效的方法。

首先,你需要一份json格式的数据文件,Django对此提供了很好的支持―dumpdata 命令:

python manage.py dumpdata myapp >myapp/fixtures/myapp.json
# 这个命令将帮助你把数据库中myapp 导入到myapp/fixtures/test.json中
# 这个myapp可以没有,会把数据库所有数据生成Json文件

基础配置

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

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

接着在test.py中 加入:

fixtures = ['test.json']

 最后么当然是运行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开头的方法将会执行

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)

测试用例通过

Creating test database for alias 'default'...
System check identified no issues (0 silenced).
.
----------------------------------------------------------------------
Ran 1 test in 3.863s

OK
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

到此这篇关于Django单元测试中Fixtures用法详解的文章就介绍到这了,更多相关Django Fixtures内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Django Fixtures