咔叽游戏

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 492|回复: 0

[python] Python编写单元测试代码实例

[复制链接]
  • TA的每日心情
    无聊
    2019-6-2 14:11
  • 签到天数: 4 天

    [LV.2]圆转纯熟

    发表于 2020-10-4 14:01:30 | 显示全部楼层 |阅读模式
      做一个简单的小实例:
      目录结构如下:
    Python编写单元测试代码实例-1.png
    1. demo1.py
    2. class MyClass():
    3.   def __init__(self,x,y):
    4.     self.x = x
    5.     self.y = y
    6.   def add(self):
    7.     return self.x + self.y
    8.   def sub(self):
    9.     return self.x - self.y
    复制代码
    1. import unittest
    2. from unittset_demo.demo1 import MyClass
    3. class MyclassTest(unittest.TestCase):
    4.   def setUp(self) -> None:
    5.     '''
    6.     测试之前的准备工作
    7.     :return:
    8.     '''
    9.     self.clac = MyClass(4,3)
    10.   def tearDown(self) -> None:
    11.     '''
    12.     测试之后的收尾
    13.     如关闭数据库
    14.     :return:
    15.     '''
    16.     pass
    17.   def test_add(self):
    18.     ret = self.clac.add()
    19.     self.assertEqual(ret,9)
    20.   def test_sub(self):
    21.     ret = self.clac.sub()
    22.     self.assertEqual(ret,-1)
    23. if __name__ == '__main__':
    24.   suite = unittest.TestSuite()
    25.   suite.addTest(MyclassTest('test_add'))
    26.   suite.addTest(MyclassTest('test_sub'))
    27.   runner = unittest.TextTestRunner()
    28.   runner.run(suite)
    复制代码
    setUp就是帮我们做测试前的准备工作,比如实例化等,
    tearDown可以帮我们关闭数据库等收尾操作,
    一般测试方法必须以test_开头,里面可以写我们需要测试的业务逻辑,同时指定self.assertEqual()将我们的结果和运行的实际结果进行比对。
    suite就是我们的测试集,之后添加测试用例,用runner实例化运行。
    运行结果:
    Python编写单元测试代码实例-2.png

    如果我们将预计的结果写错,
    1.   def test_add(self):
    2.     ret = self.clac.add()
    3.     self.assertEqual(ret,2)
    4.   def test_sub(self):
    5.     ret = self.clac.sub()
    6.     self.assertEqual(ret,3)
    复制代码
    运行结果:
    Python编写单元测试代码实例-3.png

      同时我们还可以在django的test文件中测试自己的用例:
    1. class StudentTest(TestCase):
    2. def setUp(self);
    3.   Student.objects.create(name='jack',age=13)
    4. def test_student_create(self):
    5.   obj = Student.objects.get(name='jack')
    6.   self.assertEqual(obj.age,18)
    复制代码
      测试是使用的模板是否正确,在terminal中输入:python manage.py test 即可测试
    1. class HomeTest(TestCase):
    2.   def test_home_page_renders_home_template(self):
    3.    response = self.client.get('/home/')  # 模拟浏览器
    4.    self.assertEqual(response.status_code,200)
    5.    self.assertTemplateUsed(response,'home.html')
    复制代码
    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持咔叽论坛。

    原文地址:https://www.jb51.net/article/195352.htm

    QQ|免责声明|小黑屋|手机版|Archiver|咔叽游戏

    GMT+8, 2024-3-29 13:40

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表