「DIなんてフツーのJavaプログラマには理解できっこない」議論

DIなんてフツーのJavaプログラマには理解できっこない
こっちはなんとも難しいな。ボクはDIってのを知らなかったのでいろいろサイトを見てみたんだけど、結局DIやって全工程がどんだけ楽になるの? ってところが全然わからなかった。
例えばJava開発を変える最新の設計思想「Dependency Injection(DI)」とは | 日経 xTECH(クロステック)に書かれているような説明だと、確かに静的なレベルでは相互の依存性が小さくなりコンポーネント単体でのテストはやりやすくなるように見える。コンポーネント開発者にとってはそりゃ歓迎されるだろう。でも、

例えば Spring Frameworkの場合は,XML形式の設定ファイルに,AとBとの間の依存性を記述する。

の、XMLが正しいかどうかのテストはどうやってやるの? もともとJavaソースコードレベルでAとBが依存してるようなコードだったら、Bのスタブを適切に作ってAのJavaソースコードをテストすりゃちゃんとテストできたし、そもそも言語仕様レベルで依存しているところはコンパイルエラーで静的にチェックできてたんだけど、
DIだったらどうするのかってところがわかんない。

いままでのEJBが腐っていてダメな部分があって、そのダメな部分に対してDIってやつを適用してうまくいくようになった、だからEJB3.0にDIが適用されるってだけなら(ボクはEJBを知らないので理解はできないけど)納得できるけど、だからってほかのところに闇雲に適用して失敗するようなことがないようにして欲しいと思った。