寒假Python之旅final part
看到一个认识的人一天13小时高强度写代码,顿时感觉十分羞愧。我怎么这么弱啊.jpg已经鸽。了两天了哦草。不过看起来我很快就能实际运用了)
2.17
第 11 章 测试代码
-
Python标准库中的模块unittest 提供了代码测试工具。(关于这个标准库,应该是在Python3.0下面的位置,直接使用import,而对于你自己写的模块,得放到和.py同一目录下才能用)
-
Python标准库中的模块unittest 提供了代码测试工具。
单元测试:看看函数的某个方面有没有问题
测试用例:一组单元测试,来测试函数是否在各种情况下都适用。
进酒吧点了一份炒饭全覆盖式测试:顾名思义,覆盖了各种可能的使用方法
-
创建测试用例:先导入模块unittest 以及要测试的函数,再创建一个继承unittest.TestCase 的类,并编写一系列方法对函数行为的不同方面进行测试。
import unittest #导入模块 from name_function import get_formatted_name #导入函数 class NamesTestCase(unittest.TestCase): """测试name_function.py""" def test_first_last_name(self): """能够正确地处理像Janis Joplin这样的姓名吗?""" formatted_name = get_formatted_name('janis', 'joplin') self.assertEqual(formatted_name, 'Janis Joplin') unittest.main() . #一个句号表示一个测试通过了 ---------------------------------------------------------------------- Ran 1 test in 0.000s OK #OK表示所有单元测试都通过了
总之照葫芦画瓢(受不了了,看了下视频,还是没整明白,这都啥啊)总之我的建议是不要想太多,unittest.TestCase这名字能当类我不是很理解,就当是测试代码的格式罢。
-
断言方法:在unittest类中,用来核实得到的结果是否与期望的结果一致。
方法
assertEqual()
,将两个参数的值比较,相同的话就吱一声。 -
测试没通过会这样:
E #指出有一个错误,如果断言有问题就是F ====================================================================== ERROR: test_first_last_name (__main__.NamesTestCase) ---------------------------------------------------------------------- Traceback (most recent call last): File "test_name_function.py", line 8, in test_first_last_name formatted_name = get_formatted_name('janis', 'joplin') TypeError: get_formatted_name() missing 1 required positional argument: 'last' ---------------------------------------------------------------------- Ran 1 test in 0.000s FAILED (errors=1)
-
Python在unittest.TestCase 类中提供了很多断言方法。
方法 用途 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 中 -
测试类:其实和测试函数没什么区别。。。
-
方法setup():如果你在TestCase 类中包含了方法
setUp()
,Python将先运行它,再运行各个以test_打头的方法。可以创建调查对象和答案。
至此,我大致学完了基础知识,看起来终于可以实操了)))
腰斩!!!
由于接下来的部分都是实操,基础知识,而且临近开学,所以我学着学着突然想到:我学这些特化部分干啥?所以把写一半的给删了,看起来很少是理所当然的,因为我已经学完基础知识了(
所以说我们寒假python之旅迎来了结束
可喜可贺可喜可贺ヾ( ̄▽ ̄)ByeBye