您的位置:首页技术文章
文章详情页

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

【字号: 日期:2024-10-23 16:04:56浏览:34作者:猪猪

在使用单元测试时,有时候需要测试数据库中有数据,这时我们可以使用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-8from __future__ import unicode_literalsimport jsonfrom rest_framework import statusfrom rest_framework.test import APITestCaseclass 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

OKDestroying 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
相关文章: