2016-11-01 7 views

答えて

1

あなたが使用する予定の環境については、コードをテストする必要があります。Ruby言語のバージョンは、変化する可能性のあるものです。あなたのコードがコードをサポートしていると思われる場合は、JRubyとRubiniusをテストすることも考えられます。それは公開宝石として提供されます。

論理的には、最も早いバージョンと最新バージョンのテストでは、言語機能に関するほとんどの障害シナリオをカバーする必要があります。私が知る限り、あるバージョンでは意図的に追加または削除されたRubyの機能はなく、その後のバージョンではその決定が逆になりました。ただし、プロダクションコードでは、フィーチャの存在を検出してそのフィーチャを完全に使用している場合があります。その場合、最新の状態ではない機能を持つ中間のRubyバージョンは失敗する可能性があります。

他の注意点もあります。哲学的に言えば、テストを開始するときには、「これはうまくいくはず」という論理を避けたいと思っています。考え。テストのポイントは、にあなたのコードはあなたがカバーした方法で失敗しないことを示しています(それよりも深いことがありますが、テストの哲学に没頭すると答えが長くなりすぎます)。 Ruby MRIのすべてのバージョンで2.0.0から2.3.1への動作を宣言したい場合は、実際にテストした方が安全です。実際、公共の場でそのような発言をするとき、私は通常、「2.0.0、2.1.4、および2.3.1のバージョンでテストされた」未処理の事実に近いものを言います。

明らかにリターンが減少しています。 2.1.9で問題がなければ、2.1.10で問題が発生する可能性はほとんどありません。ある時点では、テスト結果を見るだけでも、すべてのマイナーなバリエーションを確認する必要があります。余分なカバレッジの

この問題の通常の解決策は、自動化されたテスト環境で処理できるように多くのバリエーションをテストすることです。セットアップとメンテナンスに煩わされる可能性があります。複数のバージョンのRubyをテストサービスプロバイダが並行して使用する場合(例:あなたはTravisを使用しています - そして、複数のバージョンをテストするのは比較的安いです。したがって、あなたは見て気にすることができるように、あなたは "野生の中"に見えると予想される環境の変化について多くのカバレッジを得ることができます。

関連する問題