[Book]TDD,Kentbeck 1部分通貨例
開発テスト主導
テスト主導開発の究極の目標:簡潔なコードを実行する
基準:
第一部。通貨の例
ソースリンク
TDDのリズム
驚くべきハイライト
第1章。複数通貨をサポートする金銭オブジェクト
Money Class
事業株価合計IBM 10002000 GE 4001004000合計65000
複数の通話をサポートする金銭類
事業株価合計IBM 100025 USD 25000 USDGE 4005150 CHF 60000 CHF合計65000ドル
為替レートカテゴリ
基準換算レートCHFUSD 1.5
必要なテスト
할 일
$5 + 10CHF = $10 (환율이 2:1일 경우)
$5 x 2 = $10
amount를 private으로 만들기
Dollar 부작용?
Money 반올림?
金銭レベルとテストの作成
実行されたタスク
第二章。堕落の対象
典型的なTDDサイクル
할 일
$5 + 10CHF = $10 (환율이 2:1일 경우)
~~$5 x 2 = $10~~
amount를 private으로 만들기
Dollar 부작용?
Money 반올림?
第三章。人はみな平等である
할 일
$5 + 10CHF = $10 (환율이 2:1일 경우)
~~$5 x 2 = $10~~
amount를 private으로 만들기
~~Dollar 부작용?~~
Money 반올림?
**equals()**
hashCode()
Equal null
Equal object
緑のバーの3つ目のポリシーを表示します.第四章。プライバシー
一時変数productを削除すると、一連の操作ではなく、実際の命題に対する断言であるため、私たちの意図はより明確になります.
Dollarのamountインスタンス変数を使用するコードはDollar自身だけです.したがって、変数をprivateに変更できます.
やるべきこと
$5+10 CHF=$10(為替レートが2:1の場合)
$5 x 2 = $10
amountをプライベートにする
ドルの副作用?
金は四捨五入?
equals()
hashCode()
Equal null
Equal object
第五章。Franc-ly Speaking
やるべきこと
$5+10 CHF=$10(為替レートが2:1の場合)
$5 x 2 = $10
amountをプライベートにする
ドルの副作用?
金は四捨五入?
equals()
hashCode()
Equal null
Equal object
5CHF x 2 = 10CHF
$5+10 CHF=$10(レートが2:1の場合)にアクセスするには、まずFrancクラスを作成します.Dollarクラスをコピーし、Francクラスを作成すれば解決します.
第六章。すべての人の平等のために
共通equals
DollarとFrancは共通の機能を持っている.上位クラスを使用してequals機能を再構築します.
第七章。りんごとオレンジ
FrancとDollarの比較
質問:
assertFalse(new Franc(5).equals(new Dollar(5)));
に失敗しました.DollarとFrancの違いを作ります.
&& getClass().equals(money.getClass());
equalsにはクラス比較の条件も追加されています.第八章。オブジェクトの作成
Dollar/Franc冗長
2つの実装は同じです
class Money{
static Dollar dollar(int amount){
return new Dollar(amount);
}
static Franc franc(int amount){
return new Franc(amount);
}
}
第九章。私たちが暮らす時間
通話.
テスト単位がカーソルにエラーが発生した場合、減少できるはずです.
class Money{
static Money dollar(int amount){
return new Dollar(amount, "USD");
}
}
class Dollar{
private String currency;
Dollar(int amount, String currency) {
this.amount = amount;
this.currency = currency;
}
Money times(int multiplier) {
return Money.dollar(amount * multiplier);
}
}
第十章。おもしろい時間
きょうようじかん
FrancおよびDollarで実装されたtimes()メソッドを親に移動するには、ジェネレータを金銭に変更します.
equalsは、クラスを比較せずに通貨を比較するように設定されました.
第11章。万悪の源
Dollar/Franc冗長
Dollar、Francクラスにはジェネレータのみが存在するため、削除できます.
moneyクラスのみを保持し、残りのクラスを削除します.
第12章。とうとう
$5+$5 = $10
簡単な加算を実施する前に、計算に必要な比喩を慎重に考えてください.
複雑で直感的な問題を解決するためにクラスを作成してテストを実装
第13章。本当に
$5+$5 = $10
第14章。置換
通貨換算用のReduce
第15章。異なる通貨の追加
$5+10 CHF=$10(為替レートが2:1の場合)
第16章。抽象画
Expression.プラスを終了するにはSumplusを実装し、Expressionを使用する必要があります.実装times()で完了しました.
第17章。金銭の回顧
プロセス:
Reference
この問題について([Book]TDD,Kentbeck 1部分通貨例), 我々は、より多くの情報をここで見つけました https://velog.io/@mohai2618/Book-Test-DrivenDevelopmentBy-Example-켄트-벡-1부-화폐예제テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol