高野です。

>> 起動直後の環境では gets がSTDINを素直に読み出しているようなのですが、
>> テストの環境では最後まで到達したARGFから読み出しているのかもしれません。
>> nilが返却されてました。
>>     
>
> そのテストに gets は使ってないと思うんですが、なんの話をして
> いますか?
>   

リファレンスに載っていたコードをテスト環境に入れてみた
[ruby-dev:36680]
と話が混ざってしまいました。すみません。

ううーむ。
となると、putsのデフォルトの出力先 $> が STDOUTでないところになっている
のかな?

ついでに先ほどの文章に間違いがありましたので、訂正させてください。
- 元のコードでSTDINにputsした場合もパスしています。
+ 元のコードでSTDOUTにputsした場合もパスしています。