PHP には (まだ) 戻り値の型がないため、多少機能が低下しています。X が既に存在する場合に例外をスローするには、コードが必要です。これをシナリオに書くことはできますが、シナリオから自分のクラスが実装するインターフェイスに進むことができません。
実際、この問題はTDDでも同じだと思います。インターフェースよりも、「テスト」を通じてわかることの方が多いようです。それでも私のインターフェイスは、どのコンポーネントが相互作用できるか、どのような責任を負うべきかを定義します。
PHP には戻り値の型がないため、問題はより大きくなりますが、x の場合に例外をスローする必要があるという契約がないため、他の言語にも存在します。
どうすればこれに対処できますか?