Rubyの話題っていうか、rspecなんだけどさ、
すごいもやもや感がある。

rspec便利なんだけど、なんで通常のプログラミングとは
ことなった技術を使わないといけないだのだろう?
アサーションとかモックとか

アサーションって要は比較命令だろ?
モックは要はクラスの継承だろ?

もちろんテストのための機能(エラーが起きた時の情報表示)が
ついてるのはわかるよ。でもそれは本質的なことじゃなく
比較命令や継承ができればいいはず。
つまり通常のプログラミング技術と同じ書き方でテストコードも書けるはず。

テストコードが読みやすいようなDSLになっているというのなら
それを通常のプログラミングでも使えばいいやん?読みやすくなる。
なんでテスト用に特殊な書き方を覚えなきゃならないんだ?