spec / rspecとmspecの違いは何ですか? ruby spec homeでは、mspec コマンドを使うべきだと書いてありました。
しかし、他の何人かは「spec kind_of_spec.rb」であるべきだと言いました。
また、誰かが「rspec」を使うべきだと言っていました。
これら 3 つのモジュールの違いはどれですか?
spec / rspecとmspecの違いは何ですか? ruby spec homeでは、mspec コマンドを使うべきだと書いてありました。
しかし、他の何人かは「spec kind_of_spec.rb」であるべきだと言いました。
また、誰かが「rspec」を使うべきだと言っていました。
これら 3 つのモジュールの違いはどれですか?
要するに、これらのモジュールには同じ目的 (テスト) がありますが、それに到達するためのツールセットの種類が異なります。
ルビースペック。RubySpec は、Ruby プログラミング言語の実行可能な仕様を作成するプロジェクトです。
RSpec - RSpec は Ruby プログラマー向けの動作駆動型開発ツールです. BDD は、テスト駆動開発、ドメイン駆動設計、受け入れテスト駆動計画を組み合わせたソフトウェア開発へのアプローチです。RSpec は、TDD の文書化と設計の側面に焦点を当てて、その方程式の TDD 部分を実行するのに役立ちます。
MSpec - MSpec は、+describe+、+it+ ブロック、+before+、+after+ アクションなどの基本的なものについて、RSpec と構文互換性のある特殊なフレームワークです。MSpec には、複数の Ruby 実装で使用される RubySpec の作成を支援する追加機能が含まれています。
これらは非常に似た名前の異なるツール/プロジェクトですが、目的は完全に異なります!
1)rspec
RSpecは、独自のルビーコードをテストするために使用するツールです。これは、ここのRailsガイドで説明されているRailsの組み込みテストフレームワークに代わるものです。
rspecに切り替えると、コマンドを実行します
rake spec
テストスイート全体を実行するか、次のようなコマンドを実行します
rspec spec/models/course_spec.rb
テストの特定の部分を実行します。
2)rubyspecおよびmspec
RubySpecは、Rubyプログラミング言語の実行可能仕様を作成するプロジェクトです。いくつかの異なるRubyインタープリターがあるため、このような仕様が必要です。MatzのRubyインタープリター(MRIと呼ばれる)は事実上の標準ですが、Rubinius、JRuby、IronRuby、MacRuby、HotRubyなどもあります。
MSpecは、Ruby仕様の開発に使用されるツールです。使用法zurspecでも同様です。
新しいRubyインタープリターを作成したい場合は、rubyspecを使用して正しく実行しているかどうかをテストできます。
ただし、rubyを使用して独自のWebプロジェクトを開発している場合は、RubySpecは必要ありません。