RSpecでテストを実行しようとすると以下のエラーが出た。
iconv.dll: 127: 指定されたプロシージャが見つかりません。 - Init_iconv (LoadError)
エラーメッセージで検索すると以下のページが見つかった。
http://www.ync-net.co.jp/~kaz/diary/?date=0829
この記事によると原因はiconv.soをロードすべきところをiconv.dllをロードしてしまっているためのようだ。
実行するSpecファイルと同じフォルダにiconv.dllがあったのでこれをリネームするとエラーが出なくなった。
つまり、requireはある順序でPATHを検索していき、最初に見つかったファイルをロードするんだろう。
↓のrequireについての説明を見ても検索するPATHの順序は書いてなかったので順序は謎だけど。。
Ruby Reference Manual
↑を見る限り、解決策としては
require 'iconv'
とするのではなく、
require 'iconv.so'
のように拡張子まで指定するのでもOKのように思えるが、この修正ではエラーは解消できなかった。