高野です。
>> ドキュメントを見るとこの使い方が正しいようです。→(ぱっち
>> テストも通ることを確認しました。
>>     
>
> もとのテストはどのように正しくないんでしょうか?
>
>   
ioのインスタンスのputsを呼んでない部分です。

ドキュメントをみて、組み込みのputsではなく、ioのputsを使うことで
親のプロセスで標準入出力を扱えると思いました。
http://www.ruby-lang.org/ja/man/html/IO.html

>> # getsがSTDINを明示的に指定しないと読んでくれませんでした。
>> # 原因はボクにはわかりません。
>>     
>
> そういう問題があるなら、テストは失敗するのが正しいのでは?
>   
確かに、テスト環境から切り離したときにはSTDINを指定せずとも子プロセスの
値をきちんと拾ってくるので、STDINの記述は行わなわず、失敗するのが
正しいのかもしれません。

テスト環境のバグということになるんでしょうか。わかりませんでした。