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')

      

  • 相关阅读:
    sqoop导出数据
    sqoop导入数据
    Hive学习(二)
    各个版本的集群安装包地址
    Hive学习(一)
    数据仓库
    HBase学习(二)
    HBase学习(一)
    MySQL中阻塞
    MySQL中锁问题
  • 原文地址:https://www.cnblogs.com/jimmyhe/p/10852764.html
Copyright © 2011-2022 走看看