zoukankan      html  css  js  c++  java
  • python单元测试编写

      做一个简单的小实例:

      目录结构如下:

    demo1.py
    
    class MyClass():
    
        def __init__(self,x,y):
            self.x = x
            self.y = y
    
        def add(self):
    
            return self.x + self.y
    
        def sub(self):
    
            return self.x - self.y
    import unittest
    from unittset_demo.demo1 import MyClass
    
    
    class MyclassTest(unittest.TestCase):
        def setUp(self) -> None:
            '''
            测试之前的准备工作
            :return:
            '''
            self.clac = MyClass(4,3)
    
        def tearDown(self) -> None:
            '''
            测试之后的收尾
            如关闭数据库
            :return:
            '''
            pass
    
        def test_add(self):
            ret = self.clac.add()
            self.assertEqual(ret,9)  
    
        def test_sub(self):
            ret = self.clac.sub()
            self.assertEqual(ret,-1)
    
    if __name__ == '__main__':
        suite = unittest.TestSuite()
        suite.addTest(MyclassTest('test_add'))
        suite.addTest(MyclassTest('test_sub'))
    
        runner = unittest.TextTestRunner()
        runner.run(suite)

     setUp就是帮我们做测试前的准备工作,比如实例化等,

    tearDown可以帮我们关闭数据库等收尾操作,

    一般测试方法必须以test_开头,里面可以写我们需要测试的业务逻辑,同时指定self.assertEqual()将我们的结果和运行的实际结果进行比对。

    suite就是我们的测试集,之后添加测试用例,用runner实例化运行。

    运行结果:

    如果我们将预计的结果写错,

        def test_add(self):
            ret = self.clac.add()
            self.assertEqual(ret,2)
    
        def test_sub(self):
            ret = self.clac.sub()
            self.assertEqual(ret,3)

    运行结果:

      同时我们还可以在django的test文件中测试自己的用例:

    class StudentTest(TestCase):
    
      def setUp(self);
        Student.objects.create(name='jack',age=13)
    
      def test_student_create(self):
        obj = Student.objects.get(name='jack')
        self.assertEqual(obj.age,18)

      测试是使用的模板是否正确,在terminal中输入:python manage.py test 即可测试

      class HomeTest(TestCase):
    
        def test_home_page_renders_home_template(self):
    
          response = self.client.get('/home/')   # 模拟浏览器
    
          self.assertEqual(response.status_code,200)
    
          self.assertTemplateUsed(response,'home.html')

      

  • 相关阅读:
    听闻 kubernetes,快速了解一番
    处理器 趣事 CPU/GPU/TPU/DPU/BPU
    记录
    硬盘
    图 总结 AI
    C# 加密、解密PDF文档(基于Spire.Cloud.SDK for .NET)
    Spire.Cloud 私有化部署教程(二)- Ubuntu 18.04 系统
    Spire.Cloud 私有化部署教程(一)
    C# 将PDF转为Word、Html、XPS、SVG、PCL、PS——基于Spire.Cloud.SDK for .NET
    C# 设置、删除、读取Word文档背景——基于Spire.Cloud.Word
  • 原文地址:https://www.cnblogs.com/jimmyhe/p/10852764.html
Copyright © 2011-2022 走看看