私はPHPとTDD(PHPとPHPUnitを使用)を独学しています。私はKent Beck著のTest-driven Development by Exampleという本に取り組んでいます。
たとえば、第 3 章では、平等テストについて次のように提案しています。
public void testEquality() {
assertTrue(new Dollar(5).equals(new Dollar(5)));
}
Dollar クラスでは、equals メソッドを次のように書き直しています。
public boolean equals(Object object) {
Dollar dollar = (Dollar) object;
return amount == dollar.amount;
}
私が PHP に慣れていないことはおそらく役に立たないでしょうが、それを PHP に変換する方法がわかりません。
私が試した最初の機能について:
public function testEquality(){
$a = new Dollar(5);
$this->assertTrue($a->equals($b = new Dollar(5)));
}
これは正しい軌道ですか?私がPHPについて知っている限り、オブジェクトは変数に代入する必要がありますよね?そのルートの前に私が探検した
$this->assertTrue(new Dollar(5)->equals(new Dollar(5)));
構文エラーをスローしました。ただし、以前の testMultiplication メソッドを pass でリファクタリングすると驚くべきこと$this->assertEquals(new Dollar(10), $five->times(2));
です。
メソッドに関する限りequals
、それは私にはまったくなじみがなく、どこから始めればよいかわかりません。
上記をPHPで正しく再構築するにはどうすればよいですか? いくつか正しく理解できれば、残りの例を処理できると思います。
副次的な質問として、この Money の例が PHP でアプローチされているかどうか、そしてコードが公開されているかどうかを知っている人はいますか?