《Python编程:从入门到实践》学习打卡17-测试代码(下)

类的测试

基本断言方法

方法作用
assertEqual(a,b)核实a,b相等
assertNotEqual(a,b)核实a,b不相等
assertTrue(x)核实x为真
assertFalse(x)核实x为假
assertIn(item,list)核实item在list中
assertNotIn(item,list)核实tem不在list中

类测试的基本思想

对类中每个可能出现的情况进行一次测试,这种方法过于繁琐,需要一直创建实例

class non_survey():
    """创建一个需要测试的类,存放在survey.py"""
    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_result(self):
        for response in self.responses:
            print('- ' + response)
import unittest
from survey import non_survey
class TestSurveyCase(unittest.TestCase):
    def test_store_single_question(self):
        """测试单输入情况"""
        question = 'what is your first language first lesrued?'
        my_survey = non_survey(question)
        my_survey.store_response('english')
        self.assertIn('english',my_survey.responses)

    def test_store_three_question(self):
        """测试三输入情况"""
        question = 'what is your first language first learned?'
        my_survey = non_survey(question)
        response = ['english','spain','japan']
        my_survey.store_response(response)
        self.assertIn(response,my_survey.responses)
unittest.main()

方法setUp()

运用此方法可以在开头创建一个实例,此后的测试可以直接拿来用,避免重复创建实例,注意此处up中的u一定是大写的!

mport unittest
from survey import non_survey
class TestSurveyCase(unittest.TestCase):
    def setUp(self):
        question = 'what is your first language learned'
        self.my_survey = non_survey(question)
        self.responses = ['english','france','spain']
        
    def test_store_single_question(self):
        self.my_survey.store_response(self.responses[0])
        self.assertIn(self.responses[0],self.my_survey.responses)
    def test_store_three_question(self):
        for response in self.responses:
            self.my_survey.store_response(response)
        for  response in self.responses:   
            self.assertIn(response,self.my_survey.responses)
            
unittest.main()
            

课后习题

11-3雇员

class Employee():
    """创建一个雇佣类,存放在employee.py中"""
    def __init__(self,first_name,last_name,salary = 5000):
        self.first_name = first_name
        self.last_name = last_name
        self.salary = salary
    def give_raise(self,add):
        if add:
            self.salary += add
        else:
            self.salary += 500
        return self.salary
    def show(self):
        print(self.first_name + ' ' + self.last_name + ' ' + str(self.salary))
import unittest
from employee import Employee
class TestEmployeeCsae(unittest.TestCase):
    def setUp(self):
        """定义setUp方法,创建实例"""
        self.my_employee = Employee('link','fase')

    def test_give_default_raise(self):
        """测试默认情况下的工资"""
        raising = self.my_employee.salary
        self.assertEqual(5000,raising)
        
    def test_give_custom_raise(self):
        """测试设置增加值的工资"""
        raising_1 = self.my_employee.give_raise(700)
        self.assertEqual(5700,raising_1)

unittest.main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值