私は単純なコマンドラインの宝石を書いています。
実際の作業を行うライブラリは rspec で開発されており、これまでのところ動作しています。
コマンド ライン部分を Aruba/Cucumber でテストしようとしていますが、奇妙な動作に遭遇しました。
これをテストするために、バイナリ ファイルを にputs ARGV
、テスト ファイルをtmp/aruba
実行するbundle exec gem_name tmp/aruba/*.*
と、シェル展開ファイル名のリストが表示されます。
今、私の機能ファイルは次のとおりです。
Given files to work on # I set up files in tmp/aruba in this step
When I run `gem_name *.*` # standard step
Then the output should contain "Wibble"
最後のステップは明らかに失敗しますが、期待されるものと実際の出力との違いを示しています。シェル展開されたファイル名のリストを見るのではなく、私が得るのは"*.*"
そのため、実際に期待どおりに動作するアプリを作成する立場に置かれていますが、テストに合格することはできません。「 . 」を取り、そこからファイルのリストを生成することもできますが、アプリをテストで動作させるためだけに追加の本番コードを書いています。これは正しい方法ではないと思います。そして、シェルの拡張が行われていないためです。
私のプロフィールを見ると、Ruby は私のメイン バッグではないことがわかります。これについて見逃している可能性のあるリソースがあれば、遠慮なく指摘してください。どのように回避するのですか?