注意:TDD勉強会会用の資料です。
殴り書きしてあとで清書していくので投稿段階では綺麗ではありません。
この二つを考える。
●通貨の異なる2つの金額を足し、通貨間の為替レートに基づいて換算され
た金額を得る。
●金額(通貨単位あたりの額)に数値(通貨単位数)を掛け、金額を得る。
ざっくりまとめ。
TODOリストを作成する。
どんなオブジェクトが必要かと考えるのではなく、テストから始める。
用途にあった完璧なインターフェイスを考える。
一般化をする。
1.小さいテストを1つ書く。
2.すべてのテストを実行し、 1つ失敗することを確認する。
3.小さい変更を行う。
4.再びテストを実行し、すべて成功することを確認する。
5.リファクタリングを行い、重複を除去する。
依存と重複の問題。
まず初めに依存が現れる。
①あるベンダー①に依存したSQL
②あるベンダー②に依存したSQL
①と②はベンダーに依存した部分以外は同じである。(重複する。)
途中はともかく最終コード
playground.swift
var money = MoneyTest()
money.TestMultiplication()
class MoneyTest{
init(){}
func TestMultiplication(){
var five = Dollar(5)
five.times(2);
assert(five.amount == 10)
}
}
class Dollar {
var amount:Int
init(_ amount:Int){
self.amount = amount
}
func times(_ multiplire:Int) {
self.amount *= multiplire
print(self.amount)
}
}