Tambourine作業メモ

主にスキル習得のためにやった作業のメモ。他人には基本的に無用のものです。

ケント・ベックの「テスト駆動開発」の写経をRustでやってみる(6)

4章「意図を語るテスト」に入っていこう。

amountという内部構造がインターフェースとして外に出ているのは 見づらいし良くないよねということでリファクタリングしている。 もっともだ。 そもそも、こちらにはコンストラクタすらないので、このタイミングで作ることにしよう。

impl Dollar {
    pub fn new(i: i32) -> Dollar {
        Dollar { amount: i }
    }
}

#[test]
fn test_multiplication() {
    let five = Dollar::new(5);
    assert_eq!(Dollar::new(10), five.times(2));
    assert_eq!(Dollar::new(15), five.times(3));
}

コンストラクタの名前は慣習的にnewがよく使われるけど、なんでも構わない。

というわけで、テストからamountというフィールド名が消えたので満足。4章は短い。