Python3使用unitTest.TestCase测试代码demo

你将学习一下内容:

  1. 如何使用模块中unittest中工具来为函数和类编写测试;
  2. 如何编写继承unitTest.TestCase的类,以及如何编写测试方法,已核实函数和类的行为符合预期;
  3. 如何使用setUp()来根据类高效地创建实例并设置其属性,以便在类的测试方法中都可以使用它们;

案例demo1

案例说明:根据输入的性与名,返回输出性+名的结果
name_function.py

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

编写测试文件tests.py

from django.test import TestCase
import unittest
from mysite.polls.survey import AnonymousSurvey
from mysite.polls.name_function import get_formatted_name
# Create your tests here.

class TestNameCase(unittest.TestCase):

      def test_get_formatted_name(self):
        """测试get_formatted_name"""
        format_name = get_formatted_name('san','zhang')

        self.assertEqual('San Zhang',format_name)

   

#注意下面这行代码,不写会报错哦~~~书中没有这行
if __name__=="__main__":
	unittest.main()

在这里插入图片描述

案例demo2

案例说明:调查文件的场景,根据survey(问卷)存储并打印问卷的答案response

1.定义一个你们文件类survey.py

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 self.responses:
            print('-' + response)

2.采用原始方式对survey.py函数进行测试

language_survey.py

from mysite.polls.survey import AnonymousSurvey


def ok():
    # 定义一个问题,并创建一个表示调查的AnonmousSurvey
    question = "What language did you first learn to speak?"
    my_survey = AnonymousSurvey(question)

    # 显示问题并存储答案
    my_survey.show_question()
    print("Enter 'q' at any time to quit.\n")
    while True:
        response = input("Language: ")
        if response == 'q' :
          break
        my_survey.store_response(response)

    # 显示调查结果
    print("\n Thank you to enveyone who participated in the survey.")
    my_survey.show_results()

if __name__ =="__main__":
    ok()

在这里插入图片描述
3.使用unittest进行测试
test.py

from django.test import TestCase
import unittest
from mysite.polls.survey import AnonymousSurvey
from mysite.polls.name_function import get_formatted_name
# Create your tests here.

class TestAnonymousSurvey(unittest.TestCase):

    def setUp(self) -> None:
        """创建一个调查对象和一组调查答案,供测试方法使用"""
        question = "What language did you first learn to speak?"
        self.my_survey = AnonymousSurvey(question)
        self.responses = ['chinaese','english','spanish']

    """针对AnonymousSurvy类的测试"""
    def test_store_response(self):
        """测试单个答案会被妥善的存储"""
        question = "What language did you first learn to speak?"
        my_survey = AnonymousSurvey(question)
        my_survey.store_response("Chinaese")
        self.assertIn('Chinaese',my_survey.responses)

    def test_get_formatted_name(self):
        """测试get_formatted_name"""
        format_name = get_formatted_name('san','zhang')

        self.assertEqual('San Zhang',format_name)

    def test_store_single_response(self):
        """测试单个答案被妥善的存储"""
        self.my_survey.store_response(self.responses[0])
        self.assertIn(self.responses[0],self.my_survey.responses)


    def test_store_three_responses(self):
        """测试3个答案都被妥善的存储"""
        for response in self.responses:
            self.my_survey.store_response(response)
        for response in self.responses:
            self.assertIn(response,self.my_survey.responses)


if __name__=="__main__":
	unittest.main()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值