Python-测试代码

# @Time : 2021/8/1 11:36 上午 
# @Author : ***
# @File : test.py 
# @Software: PyCharm

#断言方法包括下面这些
#assertEqual
#assertNotEqual
#assertTrue
#assertFalse
#assertIn(item,list)
#assertNotIn(item,list)
#python还提供了提高调试效率的方法 setUp方法可以在测试类中创造一些通用的对象

#不要试图在项目早起试图编写全覆盖的测试用例
#除非有充分的理由

# @Time : 2021/8/1 11:38 上午 
# @Author : ***
# @File : survey.py 
# @Software: PyCharm
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("Survery results:")
        for response in self.responses:
            print(f"-{response}")

def fun_0():#开关函数
    question = "what language did you first learn to speak?"
    my_survey = AnonymousSurvey(question)

    my_survey.show_question()
    print("enter your answers: ")
    while True:
        response = input(">")
        if response == 'q':
            break
        else:
            my_survey.store_response(response)

    print("\nThank you for joining our survey.")
    my_survey.show_results()

# @Time : 2021/8/1 2:44 下午 
# @Author : ***
# @File : employee.py 
# @Software: PyCharm

class Employee:
    def __init__(self,first,last,salary):
        self.name1=first
        self.name2=last
        self.salary=salary

    def give_raise(self,moneyP=5000):
        self.salary+=moneyP
        print("ok,you get raised,now you can get %s $ a month."%(moneyP))

# @Time : 2021/8/1 2:49 下午 
# @Author : ***
# @File : test_employee.py 
# @Software: PyCharm

import unittest
from employee import Employee

class TestEmployee(unittest.TestCase):
    def setUp(self):
        self.emp=Employee('jack','dema',1000)
    def test_give_default_raise(self):
        self.emp.give_raise(-1000)
        self.assertEqual(self.emp.salary,0)
        #经过测试我们可以发现测试函数并不会真正改变我们定义好的属性的值
        #而仅仅是一个测试作用
        #实际上这才更符合"测试"的本意
        #如果每次都改变属性,那么当测试变多时,事情将变得很麻烦
    def test_give_custom_raise(self):
        self.emp.give_raise(1000000)
        self.assertEqual(self.emp.salary,1001000)

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

# @Time : 2021/8/1 2:21 下午 
# @Author : ***
# @File : test_survey.py 
# @Software: PyCharm

import unittest
from survey import AnonymousSurvey

class TestAnonymousSurvey(unittest.TestCase):
    def setUp(self):#setUp的存在就是让诸多使用同一实例的测试函数都可以使用该函数内定义的"类的属性"
        """
        创建一个调查对象和一组答案,供使用的测试方法使用,简化程序的编写,尤其是在测试的函数过多时
        这是有意思的技巧
        :return:
        """
        question="******?"
        self.my_survey=AnonymousSurvey(question)
        self.responses=['english'.title(),'spanish'.title(),'mandarin'.title()]
    def test_store_single_response(self):
        # question="*****?"
        # my_survey=AnonymousSurvey(question)
        # my_survey.store_response('English')
        #因为setUp的使用,这部分被注释掉了
        self.my_survey.store_response(self.responses[0])#这个responses在setUp中进行了定义
        # 故而可以直接用在类的任意地方
        self.assertIn('English',self.my_survey.responses)#断言某个元素是否在列表中
    def test_store_three_responses(self):
        # question="******?"
        # my_survey=AnonymousSurvey(question)
        # responses=['english'.title(),'spanish'.title(),'mandarin'.title()]
        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()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值