Fixtures在Django测试中的使用

在对Django项目做单元测试时,经常需要生成或者导入一些初始数据。对于已经有数据存在于正式数据库的app来说,使用Fixture 载入数据,是最简便有效的方法。

阅读全文

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

    "python manage.py dumpdata myapp >myapp/fixtures/myapp.json"

    这个命令将帮助你把数据库中myapp 导入到myapp/fixtures/myapp.json中。

  • 然后在setting.py中加入:

    FIXTURE_DIRS = ('/path/to/api/fixtures/',)
  • 接着在test.py中 加入:

    fixtures = ['myapp.json']
  • 最后么当然是运行test命令了:

    ./manage.py test myapp

下面贴出一个测试用例的完整代码:

class TestFilterDeleteBiz(TestCase):
        fixtures = ['bizs.json']
        def setUp(self):
            pass
        def test_tolist_should_equal_filterdbizs(self):
            delete_bizs = SETTINGS.DELETE_BIZCHANNEL
            bizs = BizChannel.objects.exclude(name__in=delete_bizs)
            append_user(bizs)
            check_email_addrs = [ b.user['email'] for b in bizs]
            to_list = get_TO_list()
            is_equal = to_list == check_email_addrs
            self.assertTrue(is_equal, "sorry ")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值