请创建一个单独的 test_stock.py 文件,为 Stock 编写单元测试集。为了让你入门,这里有一小段测试实例创建的代码:
# test_stock.py import unittest import stock class TestStock(unittest.TestCase): def test_create(self): s = stock.Stock('GOOG', 100, 490.1) self.assertEqual(s.name, 'GOOG') self.assertEqual(s.shares, 100) self.assertEqual(s.price, 490.1) if __name__ == '__main__': unittest.main()运行单元测试,你应该可以获得一些像下面这有的输出:
. ---------------------------------------------------------------------- Ran 1 tests in 0.000s OK然后,编写其它单元测试来检查以下各项内容:
确保 s.cost 属性返回正确的值(49010.0)。
确保 s.sell() 方法正常工作。它应该相应地减小 s.shares。
确保 s.shares 属性只能设置为整数值。
对于最后一部分,你需要检查异常的触发。要做到这些,一种简单的方法是使用如下代码:
class TestStock(unittest.TestCase): ... def test_bad_shares(self): s = stock.Stock('GOOG', 100, 490.1) with self.assertRaises(TypeError): s.shares = '100'注:完整翻译见 https://github.com/codists/practical-python-zh