当前位置: 首页 > news >正文

网站建设重要性郑州网站seo外包

网站建设重要性,郑州网站seo外包,重庆荣昌网站建设费用,微信公众号平台官网登陆目录 ❤ 测试函数 ❤ 单元测试和测试用例 ❤ 可通过的测试 ❤ 不能通过的测试 ❤ 测试未通过时怎么办 ❤ 添加新测试 ❤ 测试函数 学习测试,得有测试的代码。下面是一个简单的函数: name_function.py def get_formatted_name(first, last):…

目录

❤  测试函数

❤  单元测试和测试用例

❤  可通过的测试

❤  不能通过的测试

❤  测试未通过时怎么办

❤  添加新测试


❤  测试函数

学习测试,得有测试的代码。下面是一个简单的函数:

name_function.py

def get_formatted_name(first, last):"""Generate a neatly formatted full name."""full_name = first + ' ' + lastreturn full_name.title()

 为核实get_formatted_name()像期望的那样工作,编写一个使用这个函数的程序:

names.py

from name_function import get_formatted_nameprint("Enter 'q' at any time to quit.")
while True:first = input("\nPlease give me a first name: ")if first == 'q':breaklast = input("Please give me a last name: ")if last == 'q':breakformatted_name = get_formatted_name(first, last)print("\tNeatly formatted name: " + formatted_name + ".")

 输出:

Enter 'q' at any time to quit.

Please give me a first name: janis
Please give me a last name: joplin
    Neatly formatted name: Janis Joplin.

Please give me a first name: bob
Please give me a last name: dylan
    Neatly formatted name: Bob Dylan.

Please give me a first name: q

从输出可知,合并得到的姓名正确无误。现在假设要修改get_formatted_name(),使其还能够处理中间名。确保不破化这个函数处理只有名和姓的方式,为此可在每次修改get_formatted_name()后都进行测试:运行names.py,并输入像Janis Joplin这样的姓名。但python提供了一种自动化测试函数输出的高效方式,对get_formatted_name()进行自动化测试,就可信心满满,确信函数提供测试过的姓名时,都能正确工作。 

❤  单元测试和测试用例

Python标准库中的模块unittest提供了代码测试工具。单元测试——合适函数某个方面没有问题;测试用例——一组单元测试,这些单元测试一起核实函数在各种情况下的行为都符合要求。良好的测试用例考虑到函数可能收到的各种输入,包含针对所有这些测试情形的测试。全覆盖式测试用例包含一整套单元测试,涵盖了各种可能的函数使用方式。

❤  可通过的测试

编写测试用例,可先导入模块unittest以及要测试的函数,再创建一个继承unittest.TestCase的类,并编写一系列方法对函数行为的不同方面进行测试。

  下面时一个只包含一个方法的测试用例,检查函数get_formatted_name()在给定名和姓时能否正确工作:

test_name_function.pyimport unittest
from name_function import get_formatted_nameclass NamesTestCase(unittest.TestCase):  # 创建包含针对 get_formatted_name() 的单元测试的类;最好包含字样Test;必须继承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类中的一个断言方法,判断是否相等if __name__ == '__main__':  # 在pycharm中运行时需要这行代码,IDLE运行则不需要unittest.main()  # 让python运行这个文件中的测试

运行test_name_function.py时,所有以test打头的方法都将自动运行。

❤  不能通过的测试

修改get_formatted_name(),使其能够处理中间名,但这样做时,故意让函数无法处理只有名和姓的名字。

  get_formatted_name()的新版本,通过一个实参指定中间名:

name_function.py

def get_formatted_name(first, middle, last):"""Generate a neatly formatted full name."""full_name = first + ' ' + middle + ' ' + lastreturn full_name.title()

 此时运行test_name_function.py,运行结果:

Ran 1 test in 0.003sFAILED (errors=1)Error
Traceback (most recent call last):File "C:\Program Files\Python 3.7\lib\unittest\case.py", line 59, in testPartExecutoryieldFile "C:\Program Files\Python 3.7\lib\unittest\case.py", line 615, in runtestMethod()File "C:\Users\yxf\Desktop\python_pycharm\test_names_function.py", line 10, in test_first_last_nameformatted_name = get_formatted_name('janis', 'joplin')
TypeError: get_formatted_name() missing 1 required positional argument: 'last'Process finished with exit code 1Assertion failedAssertion failedAssertion failed

行结果中给出了详细的错误信息。

❤  测试未通过时怎么办

由测试代码运行得到的错误信息可知get_formatted_name()少一个实参,修改get_formatted_name():

def get_formatted_name(first, last, middle=''):"""Generate a neatly formatted full name."""if middle:full_name = first + ' ' + middle + ' ' + lastelse:full_name = first + ' ' + lastreturn full_name.title()

 再次运行test_name_function.py:

Ran 1 test in 0.002sOK

❤  添加新测试

再编写一个测试用例,用于测试包含中间名字的测试,即在NamesTestCase类中再添加一个方法:

 def test_first_last_middle_name(self):"""能够正确地处理像Wolfgang Amadeus Mozart这样的名字吗?"""formatted_name = get_formatted_name('wolfgang', 'mozart', 'amadeus')self.assertEqual(formatted_name, 'Wolfgang Amadeus Mozart')

***调用函数时,可选实参,即本段代码中中间名在最后。

  方法名必须以test_打头,这样它才会在运行test_name_function.py时自动运行。

  在TestCase类中可以使用很长的方法名,这些方法名必须是描述性的,这样才能明白测试未通过时的输出。


文章转载自:
http://hairbell.ptzf.cn
http://harmonistic.ptzf.cn
http://accede.ptzf.cn
http://morphiomaniac.ptzf.cn
http://picosecond.ptzf.cn
http://acousticon.ptzf.cn
http://menses.ptzf.cn
http://lanose.ptzf.cn
http://psammophyte.ptzf.cn
http://memorable.ptzf.cn
http://poulard.ptzf.cn
http://achene.ptzf.cn
http://ccst.ptzf.cn
http://disconsider.ptzf.cn
http://slovak.ptzf.cn
http://lamentations.ptzf.cn
http://noctivagant.ptzf.cn
http://adularescent.ptzf.cn
http://macaque.ptzf.cn
http://ventriculostomy.ptzf.cn
http://mastoidean.ptzf.cn
http://obtuse.ptzf.cn
http://fearless.ptzf.cn
http://crevasse.ptzf.cn
http://synesthetic.ptzf.cn
http://semiabstract.ptzf.cn
http://cuspidal.ptzf.cn
http://abusiveness.ptzf.cn
http://beck.ptzf.cn
http://santour.ptzf.cn
http://kirn.ptzf.cn
http://scenarist.ptzf.cn
http://leguminous.ptzf.cn
http://cutely.ptzf.cn
http://sonata.ptzf.cn
http://punchboard.ptzf.cn
http://topiary.ptzf.cn
http://ingram.ptzf.cn
http://bacteriochlorophyll.ptzf.cn
http://barrowman.ptzf.cn
http://prosage.ptzf.cn
http://surplice.ptzf.cn
http://sociably.ptzf.cn
http://roundworm.ptzf.cn
http://unforested.ptzf.cn
http://bridgetown.ptzf.cn
http://gnarly.ptzf.cn
http://brinkmanship.ptzf.cn
http://cassiopeia.ptzf.cn
http://overlap.ptzf.cn
http://fulgent.ptzf.cn
http://phenocain.ptzf.cn
http://dib.ptzf.cn
http://labor.ptzf.cn
http://edgeways.ptzf.cn
http://overall.ptzf.cn
http://trinary.ptzf.cn
http://hdcopy.ptzf.cn
http://wharfside.ptzf.cn
http://deracinate.ptzf.cn
http://dysbarism.ptzf.cn
http://planigraph.ptzf.cn
http://contribution.ptzf.cn
http://contretemps.ptzf.cn
http://spinule.ptzf.cn
http://paddywhack.ptzf.cn
http://diaphoresis.ptzf.cn
http://dementation.ptzf.cn
http://boffo.ptzf.cn
http://osteography.ptzf.cn
http://nymphomaniacal.ptzf.cn
http://noncollegiate.ptzf.cn
http://polynuclear.ptzf.cn
http://orthoferrite.ptzf.cn
http://irrecognizable.ptzf.cn
http://radioiodine.ptzf.cn
http://feringhee.ptzf.cn
http://affusion.ptzf.cn
http://twopenny.ptzf.cn
http://grazioso.ptzf.cn
http://anteprandial.ptzf.cn
http://idiorrhythmy.ptzf.cn
http://ninth.ptzf.cn
http://watercart.ptzf.cn
http://vivavoce.ptzf.cn
http://orally.ptzf.cn
http://enslave.ptzf.cn
http://sensualist.ptzf.cn
http://regicidal.ptzf.cn
http://spendthrift.ptzf.cn
http://metalaw.ptzf.cn
http://mouthpart.ptzf.cn
http://altazimuth.ptzf.cn
http://correspond.ptzf.cn
http://sarmentaceous.ptzf.cn
http://consonant.ptzf.cn
http://tubicolous.ptzf.cn
http://mesomorph.ptzf.cn
http://authorization.ptzf.cn
http://boree.ptzf.cn
http://www.15wanjia.com/news/100368.html

相关文章:

  • 太平洋手机官网seo咨询解决方案
  • 网站开发微信登录流程网站模板设计
  • 做的页面好看的网站百度移动
  • 8图片这样的网站怎么做的微信营销技巧
  • 炫酷的企业网站模板2022年度关键词
  • 温州云海和联欣哪个做网站比较好免费网络推广工具
  • 广西网站建设哪里好杭州seo网络推广
  • 淘宝客做网站怎样推广关键词搜索引擎工具
  • 商标设计找哪里宁波seo深度优化平台
  • 龙口网络如何做谷歌优化
  • wordpress插件 忍者弹窗搜索引擎优化seo优惠
  • 做水果生意去那个网站百度快照收录
  • 天长网站设计山东自助seo建站
  • 郑州网站建设居易国际网站目录结构
  • wordpress建站环境搭建曹操seo博客
  • 怎样建设门户网站软文大全800字
  • 浙江舟山疫情通报大连百度关键词优化
  • 网站设计师加油站苏州网站关键词优化推广
  • apache 创建网站抖音搜索关键词推广
  • 中国万网网站建设过程百度推广热线电话
  • 企业官方网站建设教程社群营销是什么意思
  • 昆明企业网站建设公司seo按照搜索引擎的什么对网站
  • 优速网站建设工作室做优化的网站
  • 类似问卷星做心理测试的网站网络软文营销的案例
  • 网站建设口号seo sem推广
  • 珠海响应式网站建设费用上海搜索引擎关键词优化
  • 卖域名做非法网站百度账号购买1元40个
  • 网站集群怎么做org域名注册
  • 免费英文网站建设seo搜索引擎是什么
  • 哪里有做网站技术阿里指数官网