前回の実装ではDollarオブジェクトの値が変化する、すなわちオブジェクトに副作用の問題があります。Dollarオブジェクトの性質としては、$5は$5で変化しないことが望ましい為、timesメソッドで自身の状態を変化させずに新たらしいDollarを返すようにしましょう。 テストコードです。 def test_multiplication(self): """ 乗法に関するテスト $5 * 2 = 10 """ five = Dollar(5) product = five.times(2) self.assertEqual(10, product.amount) product = five.times(3) self.assertEqual(15, product.amount) Javaとは違ってテストは実行可能です。しかし、timesメソッドの戻り値がないためエラーが発生します。 '