微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python测试代码

前言:

编写函数或者类时,需要编写测试代码,来保证其的功能运行是否按预期的那样工作。在程序添加新的代码时,用来测试是否会破坏本身的功能

我们使用python自带的unittest模块来测试代码

编写函数

def get_formatted_name(first,last,middle=''):
    """生成整洁的姓名"""
    if middle:
        full_name = first + ' '+ middle +'+ last
    else:
        full_name = first + ' +return full_name.title() 

编写测试:

import unittest
from name_function  get_formatted_name

class NameTestCase(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)

     test_first_last_middle_name(self):
        能够正确地处理像Wolfgang Amadeus Mozart这样的姓名吗?wolfgangmozartamadeusWolfgang Amadeus Mozart)

unittest.main()

 

编写类:

 AnonymousSurvey():
    收集匿名调查问卷的答案def __init__(self,question):
        存储一个问题,并为存储答案做准备
        self.question = question
        self.responses = []

     show_question(self):
        显示调查问卷"""
        print(self.question)

     store_response(self,new_response):
        存储单份调查答卷
        self.responses.append(new_response)

     show_results(self):
        显示收集到的所有答卷print("Survey results")
        for response in self.responses:
            - '+ response)

编写测试:

from survey  AnonymousSurvey

 TestAnonymousSurvey(unittest.TestCase):
    针对AnonymousSurvey类的测试 test_store_single_response(self):
         测试三个答案会被妥善地存储
        question = What language did you first learn to speak?
        my_survey = AnonymousSurvey(question)
        lists = [EnglishChinaJapanese]
        for s  lists:
            my_survey.store_response(s)
            self.assertIn(s,my_survey.responses)

unittest.main()

总结:

unittest模块不仅支持单元测试,在接口和功能测试也能直接套用其中的方法。编写unittest必须添加继承unittest.TestCase类,测试的函数必须以test*开头,以及使用unittest.mian方法来运行此测试模块。

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐