• 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()
  • 相关阅读:
    Android 4.3 系统裁剪——删除不使用的app及添加自己app
    poj Muddy Fields
    在一台服务器上搭建相对高可用HiveServer实践
    HashMap在并发场景下踩过的坑
    搜索实时个性化模型——基于FTRL和个性化推荐的搜索排序优化
    关于扁平化视觉设计趋势的一些小分享
    如何从“点子”落地到“执行”?—完整解析1个手游传播类mini项目的进化
    网站规划通识:原型图绘制的一些注意事项
    内容社交产品中的关键数据——获得良好反馈的用户比例
    白木彰:具有普遍性的设计力
  • 原文地址:https://www.cnblogs.com/baker95935/p/9475878.html
Copyright © 2020-2023  润新知