• unittest框架系列五(unittest的TestCase常用api说明)


    unittestTestCase常用api说明

    欢迎加入测试交流群:夜行者自动化测试(816489363)进行交流学习QAQ

    –成都-阿木木


    Test Case(测试用例)

    class unittest.TestCase(methodName='runTest')

    ​ TestCase这个类的作用是用于基类当中,具体的测试方法由子类实现。此类实现测试运行程序所需要的接口,使其能够完成驱动测试,每个实例TestCase将运行一个基本方法:名为methodName的方法。在的大多数用法中TestCase,既不会更改methodName也不会重新实现默认runTest()方法。

    TestCase实例提供了三组方法:

    • 一组用于运行测试

      • setUp():调用准备测试夹具的方法。在调用测试方法之前立即调用该方法。
      • tearDown():调用测试方法并记录结果后立即调用的方法。
      • setUpClass():在运行单个类中的测试之前调用的类方法。 setUpClass以类作为唯一参数调用,并且必须修饰为classmethod()。在方法上使用@classmethod装饰器装饰。
      • tearDownClass():在单个类中的测试运行后调用的类方法。 tearDownClass以类作为唯一参数调用,并且必须修饰为classmethod()。在方法上使用@classmethod装饰器装饰。
      • run(result=None):运行测试,将结果收集到TestResult作为result传递的对象中。如果省略resultNone,则将创建一个临时结果对象(通过调用该defaultTestResult() 方法)并将其使用。结果对象返回给run()的调用者。
      • skipTest(reson):在测试方法期间调用此方法,reason输入原因。
      • subTest(msg=None,**params):返回一个上下文管理器,该上下文管理器将附带的代码块作为子测试执行。 msgparams是可选的,msg可以为任意值,在子测试失败时会显示这些值,使您可以清楚地识别它们。
      • debug():运行测试而不收集结果。这样可以将测试引发的异常传播到调用方,并可以用来支持在调试器下运行测试。
    • 一组由测试实现用于检查条件和报告故障

    • 还有一些查询方法允许收集有关测试本身的信息,简单介绍四个,还有一些不常用的,例如测试数据清理(针对setUptearDown执行失败的情况),协程,查看官网

      • fail(msg=None):指定断言失败的错误信息msg
          def fail(self, msg="test fail ha ha ha"):
              print("用例执行错误信息:{}".format(msg))
      
      this is a test_upper method
      用例执行错误信息:'FOO' != 'O'
      - FOO
      + O
      
      • id():获取测试方法的全名,包括模块和类名。
          def test_split(self):
              print(self.id())
              print("this is a test_split method")
              s = 'hello world'
              self.assertEqual(s.split(), ['hello', 'world'])
              # check that s.split fails when the separator is not a string
              with self.assertRaises(TypeError):
                  s.split(2)
      
      id()的输出为:__main__.TestStringMethods.test_split
      
      • defaultTestResult():返回应用于此测试用例类的测试结果类的实例(如果未向该run()方法提供其他结果实例 )。
      • shortDescription():返回测试的描述,或者None没有提供描述。此方法的默认实现返回测试方法doc string的第一行(如果有)。
          def test_isupper(self):
              """
              这是一个描述
              :return:
              """
              print("this is a test_isupper method")
              print(self.shortDescription())
              self.assertTrue('FOO'.isupper())
              self.assertFalse('Foo'.isupper())
      
      结果为:
      this is a test_isupper method
      这是一个描述
  • 相关阅读:
    情商 EQ & 儿童情商
    如何提高情商 转载
    cs108 03 ( 调试, java通用性)
    java 包 和 物理目录 解惑
    Toad 补充与培训 & 常用菜单
    专题实验 日期类型
    Http Response Code
    Java之 将程序打包成jar包
    Java之网络编程笔记
    java之IO
  • 原文地址:https://www.cnblogs.com/chineseluo/p/13710512.html
Copyright © 2020-2023  润新知