时间:2021-07-01 10:21:17 帮助过:13人阅读
具体代码如下:
class RomanNumeralConverter(object): def __init__(self): self.digit_map = {"M":1000, "D":500, "C":100, "L":50, "X":10, "V":5, "I":1} def convert_to_decimal(self, roman_numeral): val = 0 for char in roman_numeral: val += self.digit_map[char] return val import unittest class RomanNumeralConverterTest(unittest.TestCase): def setUp(self): self.cvt = RomanNumeralConverter() def test_parsing_millenia(self): self.assertEquals(1000, self.cvt.convert_to_decimal("M")) def test_parsing_century(self): self.assertEquals(100, self.cvt.convert_to_decimal("C")) class RomanNumeralConverterCombo(unittest.TestCase): def setUp(self): self.cvt = RomanNumeralConverter() def test_multi_millenia(self): self.assertEquals(4000, self.cvt.convert_to_decimal("MMMM")) def test_add_up(self): self.assertEquals(2010, self.cvt.convert_to_decimal("MMX")) if __name__ == "__main__": suite1 = unittest.TestLoader().loadTestsFromTestCase(RomanNumeralConverterTest) suite2 = unittest.TestLoader().loadTestsFromTestCase(RomanNumeralConverterCombo) suite = unittest.TestSuite([suite1, suite2]) unittest.TextTestRunner(verbosity=2).run(suite)
运行结果如下:
test_parsing_century (__main__.RomanNumeralConverterTest) ... ok test_parsing_millenia (__main__.RomanNumeralConverterTest) ... ok test_add_up (__main__.RomanNumeralConverterCombo) ... ok test_multi_millenia (__main__.RomanNumeralConverterCombo) ... ok ---------------------------------------------------------------------- Ran 4 tests in 0.032s OK
本文实例与前面几篇文章的内容基本一致,只在main中有些不同:
suite1 = unittest.TestLoader().loadTestsFromTestCase(RomanNumeralConverterTest) suite2 = unittest.TestLoader().loadTestsFromTestCase(RomanNumeralConverterCombo) suite = unittest.TestSuite([suite1, suite2]) unittest.TextTestRunner(verbosity=2).run(suite)
希望本文所述对大家的Python程序设计有所帮助。