問題タブ [mspec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
868 参照

mspec - この場合、MSpec を使用してコンテキスト/クラスの爆発をどのように回避しますか?

私はmspecが大好きです。技術者ではない人々と簡単にコミュニケーションできる方法で重要な例を提供するのに最適ですが、不必要な冗長性、特にクラスの爆発を提供する場合があります。

次の例を見てください。

チェスの騎士の駒の動きをモデル化したいと思っています。騎士が他の駒やボードの境界の近くにないと仮定すると、騎士が持つことができる 8 つの可能な動きがあります。これらの可能性のそれぞれをカバーしたいのですが、率直に言って、8 つの個別の仕様 (8 つのクラス) を書くのが面倒です。私はビヘイビアと継承で賢くなれることを知っていますが、8つの有効な動きをカバーしたいので、8つの s なしでそれを行う方法がわからないbecauseため、8つの個別のクラスになります。

これらのシナリオを mspec でカバーする最善の方法は何ですか?

いくつかのコード。

私がするかもしれないこと。

しかし、8回ではありません。

0 投票する
2 に答える
3972 参照

bdd - MSpec と SpecFlow のどちらをいつ使用するか? どちらの利点/欠点は何ですか?

私は BDD を始めようとしていますが、MSpec と SpecFlow に関するブログ記事を見つけました。どちらのフレームワークの長所と短所が何であるか、いつ使用するかは現在のところよくわかりません。

ドキュメントを見ると、MSpec はコンテキスト仕様スタイルを使用しているのに対し、SpecFlow は Given/When/Then スタイルを使用しているようです。私もあまり気にしませんが、プロジェクト/テスト スイートが成長したときに注意すべき落とし穴があるかどうかを知りたいです。

基本的に、毎日の仕事でそれを使用している誰かの現実世界のアドバイス/フィードバックは素晴らしいでしょう.

0 投票する
1 に答える
2140 参照

.net - MSpec の各テストでセットアップ コードとティアダウン コードを実行するにはどうすればよいですか?

ほとんどすべてのテストで必要な NHibernate をセットアップおよび破棄するための汎用コードがあります。「すべてのテストの必要性」コードを 1 か所に含めて、それをすべてのテストに適用する方法はありますか? (つまり、Nunitsetupteardownメソッドのように)

0 投票する
1 に答える
238 参照

c# - Rhino Mocks:アサーションで使用されるスタブ値?

最初に私の質問、次にいくつかの詳細:

Q:プロパティの値が後続の代入で確実に使用されるようにする場合、プロパティの値をスタブ化する必要がありますか?

詳細:
MSpec クラスで Rhino Mocks 3.5 の AAA 構文を使用しています。以下のコードは、(願わくば) 簡単に理解できるようにトリミングしました。

*_fooResultMock のプロパティ値をスタブしない:*

*_fooResultMock のプロパティ値のスタブ:*

私のテストで重要なことは、_fooResultMock のプロパティで見つかった値が _fooTargetMock のNameプロパティに割り当てられることです。

では、最初のコード ブロックはそれを適切にテストするのでしょうか、それとも 2 番目のコード ブロック (_fooResultMock のNameプロパティの値をスタブ化する) が必要なのでしょうか?

2 番目のブロックは何らかの理由で望ましくありませんか?

0 投票する
1 に答える
1037 参照

tdd - MSpec でデータ ドリブン テストを作成することはできますか?

MSpec を使用すると、データ ドリブン テストを作成できますか?

たとえば、NUnit には、複数のデータ ドリブン ケースを可能にする TestCase 属性があります。

0 投票する
2 に答える
1676 参照

resharper - Machine.Specifications を ReSharper 6 と統合するにはどうすればよいですか?

私は ReSharper 6 を使用しており、Resharper テスト ランナーで MSpec テストを取得しようとしています。残念ながら、私はこれを機能させることができないようです。

MSpec dll ファイル (Machine.Specifications.dll および Machine.Specifications.ReSharperRunner.5.1.dll) を ReSharper プラグイン ディレクトリにコピーしましたが、プラグインが見つからないようです。テスト ランナーを開いて更新すると、テストは取得されません。

テスト ランナー プラグインがバージョン 5.1 用であることは認識していますが、5.1 ランナーを使用してテストを実行できない場合でも、ReSharper は少なくとも私のソリューションでテストを見つける必要がありますか?

これを機能させる方法について何か提案はありますか?

0 投票する
3 に答える
738 参照

c# - 継承されたクラスの仕様に基本クラスの仕様を含めるにはどうすればよいですか?

RSSDataSourceParserMSpec 仕様で完全にカバーされているクラスがあります。継承されたクラスもありMultimediaRSSDataSourceParserます。親機能のすべてに加えて、iTunes RSS 拡張機能の認識を行います。拡張機能については、別の仕様で説明しました。

ただし、テスト スイートを読むビジネス関係者は、 の拡張仕様しか表示しませんMultimediaRSSDataSourceParser。から継承された機能も見たいと考えていRSSDataSourceParserます。

これらの仕様をコピーするのはばかげているように聞こえ、将来のコード管理の問題を引き起こす可能性があります。親から仕様を継承する方法はありますか?

0 投票する
2 に答える
628 参照

c# - ReSharper に MSpec メンバーへの明示的なアクセス修飾子の配置を停止させるにはどうすればよいですか?

私は Machine.Specifications を使用していますが、VS2010/Resharper が自分のコードをフォーマットしようとしていることに本当に悩まされています...例:

次のようになります。

Enterキーを押したらすぐに。ああ!これを回避する方法があるはずですよね?

0 投票する
2 に答える
500 参照

unit-testing - MSpec を使用した、リポジトリに対するユニット テストは正しく行われていますか?

1 日で 2 回目の MSpec に関する質問です。これは新記録です。私は MSpec をすぐに理解できるようにしようとしていますが、MSpec で常に抱えていた古い問題に遭遇しました。

シナリオ: 大量の漫画を含むリポジトリがあります。現時点では、文字列である単一のNameパラメータでこのセットをフィルタリングするだけで済みます。後でさらに多くのプロパティでこれをフィルタリングする必要があると言われたので、IoC を介して ICartoonRepository を取り込み、GetByName(文字列名) と呼ばれる単純なメソッドを含むクラスを作成することにしました。

これはやり過ぎだと言う人もいるかもしれませんが、私は MSpec の使い方とより TDD 的な方法で作業する方法を独学で学ぼうとしています。

だから私は以下を作成します:

リポジトリが空であるため、これはスタブで失敗します。他にも問題なく合格するテストがいくつかあります(単に GetAll() などをテストするだけです)。テストするためにリポジトリに何かを追加する必要がありますか? 困ったところです、お手柔らかにお願いします。

また、スタブにlinq文を書いていると、実際の実装とテストの2回やっているような気がします。これがポイントですか?気分が悪い。このテストを書くためのより良い方法はありますか?

わかりやすくするために、実際の実装を次に示します (インターフェイスとクラスは省略していますが、プロパティは 1 つだけです。

編集 1: 応答の欠如に基づいて、NUnit のようなものを使用していた場合、「LoadDummyData」のようなテスト クラスでメソッドを作成し、データをリポジトリにスローしたと言う必要があります。複雑なフィルタリングやビューモデルの構築を行い、何が起こったのかを手動でチェックしました。これにより、大規模なリファクタリングが雑用になりました。仕様上、それを回避できるように見えますか?

編集 2: これが私の修正されたテストで、現在合格しています。私がそれを正しく行っているかどうか教えてください、私はそう思います。握手してくれてありがとう!

編集 3: 両方のポイントを与えましたが、残念ながらベスト アンサーは 1 つしか与えられません。

0 投票する
3 に答える
474 参照

testing - Rhino MocksとMSpecを使用して抽象クラスで仮想プロパティをテストするにはどうすればよいですか?

FirstName抽象クラスに仮想プロパティがありますFoo。仮想プロパティの動作をテストする必要があります。このテストの実行時にメソッドが起動することはありません(したがって、メソッドの本体に何が含まれていても、テストは常に失敗します)。このメソッドをテスト対象のシステムにするにはどうすればよいですか?このメソッドをテストするにはどうすればよいですか?

RhinoMocks3.5とmspecを使用しています。