Discuss / Python / 交作业

交作业

Topic source

Afternoon Tea

#1 Created at ... [Delete] [Delete and Lock User]

import unittest

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

def get_grade(self):
if 60 <= self.score < 80:
return 'B'
if 80 <= self.score <= 100:
return 'A'
if 0 <= self.score < 60:
return 'C'
raise ValueError

class TestStudent(unittest.TestCase):

def test_80_to_100(self):
s1 = Student('Bart', 80)
s2 = Student('Lisa', 100)
self.assertEqual(s1.get_grade(), 'A')
self.assertEqual(s2.get_grade(), 'A')

def test_60_to_80(self):
s1 = Student('Bart', 60)
s2 = Student('Lisa', 79)
self.assertEqual(s1.get_grade(), 'B')
self.assertEqual(s2.get_grade(), 'B')

def test_0_to_60(self):
s1 = Student('Bart', 0)
s2 = Student('Lisa', 59)
self.assertEqual(s1.get_grade(), 'C')
self.assertEqual(s2.get_grade(), 'C')

def test_invalid(self):
s1 = Student('Bart', -1)
s2 = Student('Lisa', 101)
with self.assertRaises(ValueError):
s1.get_grade()
with self.assertRaises(ValueError):
s2.get_grade()

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


  • 1

Reply