zoukankan      html  css  js  c++  java
  • Python基础知识:测试代码

    1、Python标准库中的模块unittest提供了代码测试工具。

      单元测试用于核实函数的某个方面没有问题;

      测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。

      通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明');在你自己眼中,你是你自己(__name__ == '__main__')

      if __name__ == '__main__'的意思是:当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;

        当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。

    2、测试函数:首先要创建一个包含一些列针对一个函数的单元测试的类,类的命名最好看起来和被测试的函数相关,并包含Test,这个类必须继承unittest.TestCase类

      这个测试类中每一种方法命名都要以test_开头,运行测试文件时,所有已test打头的方法都会自动运行

    #城市-国家-人口
    import unittest  #调用unittest模块
    from city_functions import get_formatted_city #调出被测试函数
    class CitiesTestCase(unittest.TestCase):#创建一个继承unittest.TestCase的类
        def test_city_country(self):
            '''测试能否正确处理这样的格式'''
            formatted_city = get_formatted_city('new york','america')
            self.assertEqual(formatted_city,'New York,America')
        def test_city_country_population(self):
            formatted_city = get_formatted_city('new york', 'america','5000')
            self.assertEqual(formatted_city, 'New York,America - Population 5000')
    if __name__ == '__main__':
        unittest.main()

    3、测试类

      setUp()方法,让我们只需创建对象一次,每个测试方法中都可以使用它们

    #给员工增加年薪
    import unittest
    from employee import Employee
    class TestEmployee(unittest.TestCase):
        #setUp()方法,让我们只需创建对象一次,每个测试方法中都可以使用它们
        def setUp(self):
            self.new_employee =Employee('james','lebran',10000)
            
        def test_give_default_raise(self):#测试以默认值增加年薪
            self.new_employee.give_raise()
            self.assertEqual(self.new_employee.annual_salary,15000)
        def test_give_costum_raise(self):#测试以特定值增加年薪
            self.new_employee.give_raise(10000)
            self.assertEqual(self.new_employee.annual_salary, 20000)
    if __name__ == '__main__':
        unittest.main()

    4、测试类中必须包含一个断言方法,用来核实得到的结果是否与期望的结果一致。

      unittest Module 中的断言方法:

        assertEqual(a,b)      --核实a == b
    assertNotEqual(a,b) --核实a != b
    assertTrue(x) --核实x为True
    assertFalse(x) --核实x为False
    assertIn(item,list) --核实item在list中
    assertNotIn(item,list)--核实item不在list中
  • 相关阅读:
    使用不同方法输出一维整型数组a的各元素
    从键盘输入一个字符串与一个指定字符,将字符串中出现的指定字符全部删除
    指向函数的指针
    输入一个十进制正整数,将其转换成二进制、八进制、十六进制数输出
    java速成一篇博文搞定基础
    倒排索引lucene
    Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串
    C++对象内存布局2进阶篇C++ 对象的内存布局(下)
    笔试面试设计模式&软件测试&软件工程
    字典树
  • 原文地址:https://www.cnblogs.com/charliedaifu/p/9934720.html
Copyright © 2011-2022 走看看