python入门21测试代码

unittest模块详解
本文深入探讨了Python标准库中的unittest模块,介绍了如何使用其断言方法进行代码测试,包括assertEqual、assertNotEqual、assertTrue等,并通过两个实例展示了如何对函数和类进行单元测试。

python标准库中的模块unittest提供了代码测试工具。

unittest Module中的断言方法
assertEqual(a,b) 核实a==b
assertNotEqual(a,b) 核实a!=b
assertTrue(x) 核实x为True
assertFalse(x) 核实x为False
assertIn(item,list) 核实item在list中
assertNotIn(item,list) 核实item不在list中

例1:
要被测试的函数(将姓与名合在一起):

def get_formatted_name(first,last):
    full_name = first + '' + last
    return full_name.title()

单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试。
测试:

import unittest        //导入模块unittest
from name_function import get_formatted_name              //导入要测试的函数
class NamesTestCase(unittest.TestCase):
    def test_first_last_name(self):
        formatted_name = get_formatted_name('janis','joplin')
        self.assertEqual(formatted_name,'Janis Joplin') 
        //断言方法用来核实得到的结果是否与期望的结果一致

例2:
要被测试的函数(用户面对调查时提供答案):

class AnonymousSurvey():                     //定义这个匿名答卷类
    def __init__(self,question):
        self.question=question
        self.responses=[]
    def show_question(self):
        print(self.question)
    def store_response(self,new_response):             //添加结果的方法
        self.responses.append(new_response)
    def show_results(self):
        print("Survey results:")
        for response in responses:
            print('-'+response)

question=''what movies do you like?'
survey = AnonymousSurvey(question)           //创建该类的对象
survey.show_question()
print("enter q to quit.\n")
while True:
    response = input("Language:")
    if response ='q':
        break
    survey.store_response(response)
print("\nThank you to every who participated in the survey!")
survey.show_results()                              //显示结果

测试类:

import unittest
class TestAnonymousSurvey(unittest.TestCase):
    def test_store_single_response(self):                  //测试单个答案是否会被妥善存储
        pass
    def test_store_three_response(self):                   //测试三个答案是否会被妥善存储
        question=''what movies do you like?'
        survey = AnonymousSurvey(question)   
        responses=['english','spanish','mandarin']
        for response in response:
            survey.store_response(response)
        for response in response:
            self.assertIn(response,survey.responses)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值