この回答は、動的言語と静的言語 (好みに応じて、通知または変形された私の視点) でパラメーターの型を処理する方法について、私が理解できなかったことに神経質になりました。
動的言語でパラメーター bar を受け取るメソッド foo が与えられた場合、コンパイル時に bar の型が強制されることはありません。上記のリンクされた回答 (および私がこれに対して一般的に見た回答) は、動的言語で適切に単体テストを行う必要があるということです。
しかし、ある時点で、ユニット外の何かがそのメソッドを呼び出します。これは、それを使用するクラスの単体テストでモックされる重いオブジェクトであるとします。このメソッドを呼び出すクラスが多数あるため、型を変更する必要があります。簡単にするために、以前は数値を取っていましたが、現在は英数字が必要です。新しい要件では、数値オブジェクトではなく、文字列に対して特別に使用できるメソッドを使用する必要があります。
どのように変更し、呼び出しコードが修正されることを知っていますか? 確かに変更しただけでは単体テストは失敗しますが、意図的に変更する必要があるため、表向きは単体テストを修正することになります。呼び出しコードを修正する方法をどのように知っていますか? 概念的にどれだけ知っているかだけでなく、すべての呼び出し元を見つけて、それが変更されたと本当に言えるかをどのように知っているかを意味します。
非常に包括的な統合テストだけがその保証を与えるように思われます。何か不足していますか?