python 单元测试

单元测试就是对某一块代码编写测试代码,通过正确或者不正确的例子,检查被测代码编写的正确性。

举例:

'''
一个获取学生姓名和成绩拍段学生等级的类 Student
__init__ 定义属性
tryError 检查输入的学生姓名和分数数据是否合理
get_grade 根据成绩判断等级
'''

# -*- coding: utf-8 -*-

class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def tryError(self):
          if isinstance(self.name,str)==False:
              raise ValueError
          if self.score>100 or self.score<0:
              raise ValueError


    def get_grade(self):
            if 80<=self.score<=100 :
                return 'A'
            elif 60<=self.score<= 80:
                return 'B'
            else :
                return 'C'

测试代码:

'''
python 测试框架:unittest
设计一个Testcase ,使用assert判定其属性

'''
# -*- coding: utf-8 -*-
import unittest
from mystudent import Student       #将需要测试的文件和类引进来
class TestStudent(unittest.TestCase):
    def test_grade(self):
        for score in range (1,101):
            s1=Student('zaq',score)
            if 80<=score<=100:
                self.assertEqual(s1.get_grade(),'A') 
                #assertEqual=判定s1.get_grade()='A'
            elif 60<=score<80:
                self.assertEqual(s1.get_grade(),'B')
            else:
                self.assertEqual(s1.get_grade(),'C')

    def test_invalid(self):
        s1 = Student('Bart', -1)
        s2 = Student('Lisa', 101)
        with self.assertRaises(ValueError):
        #assertRaises 判定抛出错误 值错误
            s1.tryError()
        with self.assertRaises(ValueError):
            s2.tryError()

#执行测试代码
if __name__ == '__main__':
    unittest.main()

执行方法可以在控制台输入:
python -m student_test(文件名)

使用unittest框架时必须在测试类前面加Test才会被认为是测试类,同理,在测试方法前加test才会被认为是测试方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值