前面学委介绍了 pypi-seed优质库快速生成一个项目,然后开发自己的翻译小项目。
这次我们开发函数并编写测试代码,项目中持续加测试,可以让程序质量更高,后期改了直接运行测试,更有保障。
对了,还没有安装ppc的直接运行下面命令:
pip install pypi-seed # pip install --upgrade pypi-seed 或者这个命令升级最近ppc
ppc # 运行pypiseed命令行查看使用帮助
第一步 编写一个函数并实现测试
继续使用前篇项目的代码,复制下面黏贴到:demo.py
#!/usr/bin/env python
# -\*- coding: utf-8 -\*-
# @Time : 2021/9/14 10:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : demo.py
# @Project : helloworld
from translate import Translator
def translate(text):
translator = Translator(to_lang="chinese")
return translator.translate(text)
这个非常简单就是直接调用中文翻译。
这里我们不写main函数了。
第二步编写测试
复制下面代码保存到tests目录,文件名为demo_test.py
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
import unittest
#导入模块的demo函数
from helloworld import demo
class DemoTest(unittest.TestCase):
def test_translate(self):
expect = "好好学习,天天向上"
actual = demo.translate("good good study, day day up")
self.assertNotEqual(expect, actual)
expect = "好好学习 , 天天向上"
self.assertEqual(expect, actual)
print("测试结束,一切顺利")
if __name__ == '\_\_main\_\_':
unittest.main()
这个测试代码有main函数。
直接运行代码,效果如下:
这里我们看到“测试结束,一切顺利“。
因为中间出错误,不可能执行到最后一行。
上面的测试代码主要分三步
- 导入helloworld模块的demo函数
- 调用demo 函数获取输出到actual变量
- 调用测试工具的函数校验actual跟expect(预期结果)比对,测试失败则不继续执行,直接报错。
新知识unittest
这是python内置的测试模块。
它就像机器人一样,安装我们指定的测试校验要求,自动执行代码,自动校验,错了会告诉我们(通过运行结果)
编写我们自己开发的函数的测试,分为下面三步
- 导入unittest模块
- 实现一个unittest.TestCase子类
- 编写测试函数
再往上看一看测试代码,回顾一下这个步骤吧。
第三 把测试代码故意改错
这里代码不贴了,读者直接定位测试11行,在expect文本内容添加‘【雷学委】’。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
开源项目:docs.qq.com/doc/DSlVlZExWQ0FRSE9H