• 【Django单元测试方法】


    一.前言/准备

      测Django的东西仅限于在MTV模型。哪些可以测?哪些不可以。

    1.html里的东西不能测。
    ①Html里的HTML代码大部分都是写死的
    ②嵌套在html中的Django模板语言也不能测,即使有部分逻辑。
    但写测试用例时至少要调用一个类或者方法。模板语言没有出参也没有入参,不能测
    2.models模型可测。属于数据库层
    3.views,视图层可以测。有入参、有方法。
    综上:根据Django语言特点,可测models和views

    二.Django单元测试具体步骤----【测试模型models中的内容】

    # coding=utf-8
    from django.test import TestCase #导入Django测试包
    from sign.models import Guest, Event #导入models中的发布会、嘉宾类

    #首先创建测试类
    class ModelTest(TestCase):

    #初始化:分别创建一条发布会(Event)和一条嘉宾(Guest)的数据。
    def setUp(self):
    Event.objects.create(id=1, name="oneplus 3 event", status=True, limit=2000,
    address='shenzhen', start_time='2016-08-31 02:18:22')
    Guest.objects.create(id=1, event_id=1, realname='alen',
    phone='13711001101', email='alen@mail.com', sign=False)

    #下面开始写测试用例了
    #1.通过get的方法,查询插入的发布会数据,并根据地址判断
    def test_event_models(self):
    result = Event.objects.get(name="oneplus 3 event")
    self.assertEqual(result.address, "shenzhen")
    self.assertTrue(result.status)

    #2.通过get的方法,查询插入的嘉宾数据,并根据名字判断
    def test_guest_models(self):
    result = Guest.objects.get(phone='13711001101')
    self.assertEqual(result.realname, "alen")
    self.assertFalse(result.sign)

    #写完测试用例后,执行测试用例。这里与unittest的运行方法也不一样。
    #Django提供了“test”命令来运行测试。(用cmd执行 见下截图)

    注意:刚刚在setup()部分操作时,其实并不会真正向数据库表中插入数据。所以,不用担心测试完后产生垃圾数据的问题。

    如果:插入了表中没有定义的字段时,也是会报错提醒的! 

    三.Django单元测试具体步骤----【测试视图views中的内容】

     
  • 相关阅读:
    loj #6201. 「YNOI2016」掉进兔子洞
    poj 3683 Priest John's Busiest Day
    hdu 1814 Peaceful Commission
    poj 3207 Ikki's Story IV
    loj #2305. 「NOI2017」游戏
    uoj #111. 【APIO2015】Jakarta Skyscrapers
    洛谷P1550 [USACO08OCT]打井Watering Hole
    uoj #110. 【APIO2015】Bali Sculptures
    loj #2116. 「HNOI2015」开店
    codevs 3044 矩形面积求并
  • 原文地址:https://www.cnblogs.com/ppppying/p/6899722.html
Copyright © 2020-2023  润新知