专栏首页BigYoung小站Django单元测试中Fixtures用法

Django单元测试中Fixtures用法

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

基础配置

  1. settings.py 中配置如下内容:FIXTURE_DIRS = ('/path/to/api/fixtures/',)
  2. 在要测试的app中,增加目录fixtures
  3. 在新增的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,这部分的代码也会被执行

本文分享自微信公众号 - BigYoung小站(bigyoungs),作者:Young文人

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-02-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Django批量更新多个属性

    BigYoung小站
  • 批量重置指定域用户密码

    dsmod user (dsquery user -samid test) -pwd test@123

    BigYoung小站
  • Django的ListView超详细用法(含分页paginate功能)

    经常有从数据库中获取一批数据,然后在前端以列表的形式展现,比如:获取到所有的用户,然后在用户列表页面展示。

    BigYoung小站
  • .NET ORM 的 “SOD蜜”--零基础入门篇

    PDF.NET SOD框架不仅仅是一个ORM,但是它的ORM功能是独具特色的,我在博客中已经多次介绍,但都是原理性的,可能不少初学的朋友还是觉得复杂,其实,SO...

    用户1177503
  • 使用 Python 一键配置 SVN 账号和属组信息

    虽然现在 Git 已经很普及,但是我相信用 SVN 的公司仍然不少,那么作为 SVN 配置管理员的话,就不可避免的涉及到账号维护的问题,今天我们就说说如何通过 ...

    sylan215
  • 从头搭建一个flask鉴权系统之完结篇

    我这里使用twilio提供的短信功能,它提供了一个免费的短信接口,让我们可以在完全free的状态下测试短信功能,同时也有对应的python库twilio来简化开...

    周萝卜
  • MVC、MVP、MVVM的理解与使用

    对于MVC、MVP、MVVM,这都是Android开发的一种架构,随着日积月累的开发,很对人对这几种模式是再熟悉不过了。不过当初我在学习的时候是因为看一个开源项...

    g小志
  • 微信小程序的模块化开发

    本文是根据微信小程序官方文档整理而成的一份入门教程,总共五篇,每天更新一篇,这是第五篇:微信小程序的模块化开发。(文末有福利) 需要注意的是:是的一个引用,因此...

    企鹅号小编
  • 纸上谈兵: 左倾堆 (leftist heap)

    我们之前讲解了堆(heap)的概念。堆是一个优先队列。每次从堆中取出的元素都是堆中优先级最高的元素。 在之前的文章中,我们基于完全二叉树(complete bi...

    Vamei
  • Linux内核同步机制之completion

    233333

扫码关注云+社区

领取腾讯云代金券