-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
第14章 学習用テストと回帰テスト #18
Conversation
一旦本書とのズレを精算する。 |
2フランを1ドルに変換するテストを書く。 |
コンパイルエラー。
|
コンパイルは通るが、テストがコケる。
|
Moneyが為替レートを知っている状態になってしまった。為替レートはBankが一手に担うべき。なので、Expressionのreduceには、Bankを引数にとらないといけない。 |
テストが通る。
|
マジックナンバーが残っているので、Bank内に表形式でデータを持ち、検索できるようにしたい。 |
配列の等価比較がどのようになるかを学習するためのテストを書いた。crystalの場合は一致してしまうことがわかった。 とりあえず本書通り進めていくことにする。 |
テストを消して、Pairクラスを作成する。 |
fm |
今はPairのテストを書かない。リファクタリングの一貫でPairクラスを抽出しているから。リファクタリングが完了していれば、Pairクラスもテストできていることと同じだ。 |
equalsは https://crystal-lang.org/api/0.23.1/Object.html#hash-instance-method これは、Hashのkeyの比較にも使われている。
|
レッドバー
|
なるほど。予期しないエラーがでたら、まずテストを書くのか。 |
まー確かに、そのほうが検証早いよなぁ。他のテストが落ちていないかも検証できるし。 |
レッドバーが二つになった。
|
グリーン。
|
TODO
|
「これだけ今やったんだっけ?」ってなる。細かいステップに気を取られていて、全体的に今どうしているんだっけ?が迷う。 |
こういう時は、テストをみよう。やったことがすべてそこに書かれている。 |
TODOリストを増やすタイミングは、疑念が湧いたとき、なのかなー |
こういう迷いも考慮して、本書には「振り返り」があるんだろう。良いなぁ。 |
振り返り。
|
14章終了 |
TODO
Bank.reduce(Money)