投稿  收藏 
使用unittest测试程序

【问题描述】

现在需要使用unittest测试一个求排列数的函数perm(n,m),即从n个不同的对象中选出m个来组成一个有序序列,一共可以有多少种不同的序列。如perm(5,2)的值为5*4=20,perm(6,3)的值为6*5*4=120。

使用unittest测试程序输出结果:

Ran 1 tests in 0.183s

PASSED(successes=1)。

备注:PASSED表示通过测试。

【题前思考】

根据问题描述,填写表11-1-2。

表11-1-2 问题分析

使用unittest测试程序

【操作提示】

使用unittest进行单元测试需要以unittest.TestCase为父类创建一个类,每一个测试用例是这个类的一个方法。然后,通过执行unittest.main( )就可以启动测试过程并输出测试结果信息,如果有不成功的测试,可以通过单击跳转到相应的测试用例。

【程序代码】

文件action2.py的内容为需要测试的函数,此处为求排列数的函数。

使用unittest测试程序

【代码分析】

①:导入需要测试的action2模块。

②③:MyTestCase类的每一个方法就代表了一个测试,可以根据需要在里面添加测试代码。assertEqual方法用于判断两个参数的值是否相等,在这里表示判断函数调用action2.perm(5,2)的值是否为20,action2.perm(6,3)的值是否为120,如果两个参数的值相等则通过测试,反之测试失败。

④:调用unittest.main( )启动测试,输出测试结果。

【优化提升】

如果不想在模块中编写代码启动测试过程,可以在PyCharm窗口底部的“Terminal(终端)”面板中直接运行命令启动测试。此时if__name=='__main__'及其以后的代码都不用写,直接输入命令python-m unittest-v a11_1_2使用unittest进行测试.py即可,输出结果与上述相同。命令执行结果如图11-1-2所示。

使用unittest测试程序

图11-1-2 在终端启动unittest

【技术全貌】

在使用unittest进行单元测试时,除了可使用方法assertEqual外,还有许多用于测试其他关系的方法,见表11-1-3。关于unittest的详细内容请扫描二维码查看官方文档。

表11-1-3 unittest模块中用于测试的方法

使用unittest测试程序

关 键 词

测试程序

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢