From: "5.5" <5.5@...> Date: 2011-10-25T00:15:34+09:00 Subject: [ruby-list:48493] Re: Windows で $0 へ代入すると刈り取られる 5.5 です。 (11/10/24 9:43), Kenta Murata wrote: > むらたです。 > $0 に直接依存しないようにプログラムを書けば良いです。 > たとえば、以下のように適当なモジュールを用意して、 > その中で $0 を返す関数を定義します。 > > module Application > def Application.program_name > $0 > end > end > > そして、の関数の外で $0 を使用している箇所を > すべて program_name に置き換えましょう。 > > RSpec では以下のようにすることで、5.5 さんがやろうとしている > パスの置き換えを実現できます。 > > describe "..." do > before do > Application.stub(:program_name).and_return("/path/to/application") > end > > ... > end なるほど〜 RSpec を勉強したことがないので正確には分かりませんが,なんとなく 分かりました。 こちらは $0 を温存し,そこから値を取り出す途中のところをテスト時 だけすり替えるといった解決方法ですね。 ありがとうございました。 実は件のライブラリーとテストは既にだいぶ書き換えてしまい,一応あ る意味で解決はしていたのですが,なかださん,むらたさんに教えてい ただいたことは大変勉強になりました。 -- 5.5@moji.gr.jp