Python测试函数与类 (一)—— python编程:从入门到实践

**

Python测试函数与类 (一)—— python编程:从入门到实践

**

引言:

编写函数或类时,还可为其编写测试。通过测试,可确定代码面对各种输入都能够按要求的那样工作。测试让你信心满满,深信即便有更多的人使用你的程序,它也能正确地工作。在程序中添加新代码时,你也可以对其进行测试,确认它们不会破坏程序既有的行为。程序员都会犯错,因此每个程序员都必须经常测试其代码,在用户发现问题前找出它们。 —python编程:从入门到实践

写这一篇博客的时候我还在学校的机房上 python测试函数和类 的课程。致敬给我们教授知识的老师。 2021年10月25日 15:45

首先按照老师交给我的步骤来描述如何进行敲测试函数的代码思路:
"""
操作的步骤
1.先进行导入模块unittest
2.导入需要测试的类
3.再创建一个集成unittest.TestCase的类
4.再编写一系列方法对函数行为而不同方面进行测试
“”"

通俗地来说,我直接上操作了。首先呢,我先在pycharm上面创建一个文件包,然后在里面创建了一个叫做 hello 的 py 文件, 然后呢,我在这个hello.py文件里面创建了两个函数f1, f2。老铁们心理一定在吐槽我说这么多了,那么我就直接上图片和代码了!

在这里插入图片描述

在这里插入图片描述

hello.py的代码如下:

def f1(num_1, num_2):
    return num_1 + num_2

def f2(num_1, num_2):
    return num_1*num_2

然后呢,我就又在hello.py所在的package再新创建一个textE1.py文件,里面创建一个集成unittest.TestCase的类,通俗地来说就是在这里创建一个测试hello.py的代码的类,里面可以测试hello.py定义好的f1和f2类.这里有一些代码的格式。

还记得我刚开始就讲的那个步骤吧,这个是老师PPT上面的步骤,我觉得挺有用的,所以就按照这个步骤进行。(那么再看一遍这个步骤)

"""
操作的步骤
1.先进行导入模块unittest
2.导入需要测试的类
3.再创建一个集成unittest.TestCase的类
4.再编写一系列方法对函数行为而不同方面进行测试
“”"

第一步:

import unittest

第二步:

# import hello
# 上面的这种命名会显得有一点麻烦,因为在调用f1和f2的时候需要再写一次hello
# 意思就是每次调用f1和f2都要这样: hello.f1   hello.f2 感觉有一点麻烦呢

#为了每次调用都要hello.f1   hello.f2,于是我就直接写成了下面的这种格式
from hello import f1, f2

第三步:
这里我感觉是需要进行细说的,因为这个比前面的那两个步骤内容复杂了许多~

首先就是:重点!需要记忆它一定的格式的

代码如下:

class Hello_Text_Class(unittest.TestCase):
    """一个测试hello方法的类"""
    #需要值得注意的是,必须是使用了**test**开头的def后面才会被unittest.main()进行自动的运行

    def test_f1_Able(self):
        result = f1(2, 3)
        self.assertEqual(result, 9)
        #self.assertEqual(调用的一个引用, 自己预测调用之后的结果数值)


    def test_f2_Able(self):
        result = f2(2, 1)
        self.assertEqual(result, 2)


unittest.main()

图片如下:
在这里插入图片描述

刚刚写的时候粗心写成了 text_f1_Able(): 结果运行不了,找了问题半天,原来是要写成test, 真的是麻了

接下来再来一遍那个步骤:
"""
操作的步骤
1.先进行导入模块unittest
2.导入需要测试的类
3.再创建一个集成unittest.TestCase的类
4.再编写一系列方法对函数行为而不同方面进行测试
“”"

上面的代码实在是太枯燥了,所以我来理顺一下敲集成unittest.TestCase类的步骤。
首先呢,写出:
class Hello_Text_Class(unittest.TestCase): 里面的unittest.TestCase是需要写进那个圆括号里面的。

记住:unittest.TestCase

然后呢,就是再这个类里面敲出hello.py里面定义的一个或者多个函数,
比如f1, f2

下面来说逐步一下这个代码吧:

1:*def test_f1_Able(self):*这里就是再定义一个函数,记住:需要使用那个test开头,然后在后面加上_ 后面的名字最好是和需要测试的这个函数有关的命名

#下面的result就是我们自己进行调用这个函数然后得出的结果返回给result记录下来,可能是记录下来吧,也许我说的不严谨,请大佬指教
result = f1(2, 3)

self.assertEqual(result, 9)
上面的的格式:self.assertEqual(调用的一个引用, 自己预测调用之后的结果数值)

跑一下试试效果:

在这里插入图片描述

错误的原因文字粘贴如下:
F.

FAIL: test_f1_Able (main.Hello_Text_Class)

Traceback (most recent call last):
File “第九周实验\textE1.py”, line 28, in test_f1_Able
self.assertEqual(result, 9)
AssertionError: 5 != 9


Ran 2 tests in 0.001s

FAILED (failures=1)

Process finished with exit code 1

哎哎,也许大家发现了,我第一个样例是发生了错误的,它还给出了我错误的原因:
Traceback (most recent call last):
File “第九周实验\textE1.py”, line 28, in test_f1_Able
self.assertEqual(result, 9)
AssertionError: 5 != 9

是的,第一个是一个加法运算,但是我自己给出的运算结果是9,但是我写进函数里的是:result = f1(2, 3) 2+3=5 != 9,是的,我算错了…自己预测的是9…

第二个没有发生错误,很好,预测对了!!

	result = f2(2, 1)
	self.assertEqual(result, 2)

跑的结果为:
Ran 2 tests in 0.001s

刚刚好写完,到点要下课了,去干饭了。
希望大家看了这个有所收获,感谢哦。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值