python入门-测试代码

断言

测试函数

def get_formatted_name(first,last):
    """generate a neatly formattef full name"""
    full_name = first + ' '+last
    return full_name.title()

测试类

import unittest
class NamesTestCase(unittest.TestCase):
    def test_first_last_name(self):
        formatted_name = get_formatted_name('janis','joplin')
        self.assertEqual(formatted_name,'Janis Joplin')
unittest.main()

运行结果

Ran 1 test in 0.000s

OK

第2个例子 改进后的 2个测试函数

def get_formatted_name(first,last,middle=''):
    """generate a neatly formattef full name"""
    if middle:
        full_name = first +' '+ middle+' '+last
    else:
        full_name = first +' '+last
    return full_name.title()

 

import unittest
class NamesTestCase(unittest.TestCase):
    def test_first_last_name(self):
        formatted_name = get_formatted_name('janis','joplin')
        self.assertEqual(formatted_name,'Janis Joplin')

    def test_first_last_middle_name(self):
        formatted_name = get_formatted_name('wolfgang', 'mozart', 'amadeus')
        self.assertEqual(formatted_name, 'Wolfgang Amadeus Mozart')
unittest.main()

Ran 2 tests in 0.001s

OK

2 下面来看测试类

1)各种断言方法

assertEqual(a,b)  a和b相等

assertNotEqual(a,b)   a和b不相当

assertTrue(x) X为真

assertFalse(x)  X为假

assertIn(item,list)  item在list中

assertNotIn(item,list) item不在list中

3)类的测试

class AnonmousSurvery():
    def __init__(self,question):
        self.question = question
        self.responses = []

    def show_question(self):
        print(self.question)

    def store_question(self, new_response):
        self.responses.append(new_response)

    def show_results(self):
        print("Survey result:")
        for response in self.responses:
            print('-'+ response)

question= "what lanaguage did you first learn to speak?"
my_survey = AnonmousSurvery(question)

my_survey.show_question()
print("Enter q at any time to quit")
while True:
    response = input("Lanaguage:")
    if response == 'q':
        break
    my_survey.store_question(response)

print("
 thank you to everyone who participated in the survey")
my_survey.show_results()
import unittest
from survery import AnonmousSurvery

class TestAnnoymousSurvey(unittest.TestCase):
    def test_store_single_response(self):
        question = "What language did you first learn to speak?"
        my_survey = AnonmousSurvery(question)
        my_survey.store_question('English')

        self.assertIn('English', my_survey.responses)

unittest.main()

类的测试,创建类的实例,并测试类中的方法

3)setUp方法的使用

import unittest
from survery import AnonmousSurvery

class TestAnnoymousSurvey(unittest.TestCase):

    def setUp(self):
        question = "What language did you first learn to speak?"
        self.my_survey = AnonmousSurvery(question)
        self.responses = ['English', 'Spanish', 'Mandarin']

    def test_store_single_response(self):
        question = "What language did you first learn to speak?"
        my_survey = AnonmousSurvery(question)
        my_survey.store_question('English')

        self.assertIn('English', my_survey.responses)

    def test_store_thress_responses(self):
        for response in self.responses:
            self.my_survey.store_question(response)
        for response in self.responses:
            self.assertIn(response, self.my_survey.responses)

unittest.main()
原文地址:https://www.cnblogs.com/baker95935/p/9475878.html