問題タブ [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 投票する
1 に答える
247 参照

asp.net-mvc - Machine.Specifications.MVC ShouldBeAView() は、有効な ViewResults でも常に失敗します

Machine.Specifications.Mvc の使用中に誰かがこれに遭遇しましたか?

コントローラー アクションの結果をテストする仕様をセットアップします。この場合:

毎回発生するエラーは次のとおりです。

Machine.Specifications.SpecificationException: System.Web.Mvc.ViewResult 型である必要がありますが、d:\BuildAgent-01 の Machine.Specifications.ShouldExtensionMethods.ShouldBeOfType(Object actual, Type expected) で System.Web.Mvc.ViewResult 型です。 \work\340c36596c29db8\Source\Machine.Specifications\ExtensionMethods.cs:206行目

誰もこれを見たことがありますか?それを解決する簡単な方法はありますか?Machine.Specifications ライブラリで発生しているようです。値を確認するためにデバッグモードで実行しましたが、実際には ViewResult オブジェクトであり、正しいモデルデータでもあります。

前もって感謝します

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

resharper - mspec.exe で実行すると仕様が失敗するが、TD.NET で実行すると合格する

このトピックについて別の質問に書きました。

ただし、コードをリファクタリングして構成アクセスを削除したため、仕様に合格できるようになりました。とか、そう思いました。TestDriven.Net を使用して、Visual Studio 内から正常に実行されます。ただし、rake 中に mspec.exe ツールを使用して実行すると、シリアライゼーション例外で失敗します。そのため、スレッドに偽のセキュリティ資格情報を設定する以外は基本的に何もしない、完全に自己完結型の例を作成しました。このテストは TD.Net では問題なくパスしますが、mspec.exe では失敗します。誰か提案はありますか?

更新: 回避策を発見しました。問題を調査した結果、プリンシパル オブジェクトを含むアセンブリが mspec.exe と同じフォルダーにないことが原因のようです。mspec が新しい AppDomain を作成して仕様を実行する場合、その新しい AppDomain は、逆シリアル化するためにプリンシパル オブジェクトを含むアセンブリを読み込む必要があります。そのアセンブリは mspec EXE と同じフォルダーにないため、失敗します。アセンブリを mspec と同じフォルダーにコピーすると、正常に動作します。

私がまだ理解していないのは、ReSharper と TD.Net がテストを問題なく実行できる理由です。実際にテストを実行するために mspec.exe を使用しませんか?

0 投票する
5 に答える
1957 参照

.net - .net で人気のある BDD フレームワークは何ですか?

私は最近 BDD に取り掛かりましたが、BDD は、開発者として開発者が開発したアプリに利害関係者の声を取り戻す方法として、非常に有望だと考えています。お気に入りの BDD フレームワークは何ですか? その理由は?

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

unit-testing - モッキング フレームワークと MSPEC を使用する場合、スタブをどこに設定しますか

私は MSpec を使用するのに比較的慣れていません。テストを書くにつれて、重複を減らすために、Rob Conery の記事に従って、セットアップに基本クラスを使用する必要があることがよくあります。

AssertWasCalled メソッドを使用して期待を検証することに満足していますが、スタブの戻り値をどこに設定しますか? 依存関係を注入する基本クラスにコンテキストを設定すると便利だと思いますが、それは(私が思うに)私がする必要があることを意味しますちょうど間違っていると感じるビヘース デリゲートにスタブを設定します。

私が見逃しているより良いアプローチはありますか?

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

nunit - MBUnitでMSpecを使用しますか?

NUnitの代わりにMBUnitでMSpecを使用できるかどうか誰かが知っていますか?Gallioは、MSpecを使用するときに、すべてのテストを無視しているようです。

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

asp.net-mvc-2 - mspecはnunitの有無にかかわらず優れていますか?

いくつかのブログやディスカッションで、mspecがnunitで使用されているのを見てきました。実際、私が見たWeb上の例のほとんどは、ある種のnunit依存性または統合を備えたmspecを示しています。私のチームは、新しいASP.NETMVC2プロジェクトでnunitなしでmspecを使用しようとしています。まだスペックを書いている段階ではないので、何が良いのかわかりません。これであなたはどのような経験をしましたか?nunitでmspecを使用する利点はありますか?それなし?

0 投票する
9 に答える
6139 参照

c# - 大規模なステート マシンをテストするための戦略にはどのようなものがありますか?

大規模でかなり複雑なステート マシンを継承しました。31 の可能な状態があり、すべてが本当に必要です (大きなビジネス プロセス)。次の入力があります。

  • Enum: 現在の状態 (つまり 0 -> 30)
  • 列挙型: ソース (現在 2 つのエントリのみ)
  • ブール値: リクエスト
  • ブール値: タイプ
  • Enum: ステータス (3 つの状態)
  • Enum: 処理 (3 つの状態)
  • ブール値: 完了

各状態は異なるため、個別の状態マシンに分割することは現実的ではないようです。最も一般的な入力のテストを作成しました。入力ごとに 1 つのテストがあり、State を除くすべての入力は一定です。

各状態と一連の入力に対して出力がどうあるべきかを完全に確信している人はいません。そのためのテストを書き始めました。ただし、4320テスト (30 * 2 * 2 * 2 * 3 * 3 * 2) のようなものを記述する必要があります。

ステート マシンをテストするための提案はありますか?


編集:私はすべての提案で遊んでおり、最も効果的なものを見つけたら答えをマークします。

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

unit-testing - xunitとmspecのリハーパーランナープラグインを同時に使用

vs2008のxunitテストにResharper4.5ランナーを使用することに成功しました。次に、MSpecを試して、MSpecにResharper4.5ランナーを使用したいと思います。しかし、両方をインストールしているので、Visual Studioを起動すると、同じ名前のプラグインが既にロードされているため、プラグインをロードできないというエラーメッセージが表示されます。

2つのプラグインを同時にロードすることは可能ですか?

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

c# - DefaultModelBinder のテスト時の NullReferenceException

BDD/TDD 手法を使用してプロジェクトを開発しており、コースを維持するために最善を尽くしています。私が遭遇した問題は、DefaultModelBinder の単体テストです。mspec を使用してテストを記述しています。

バインドしたい次のようなクラスがあります。

これが、仕様コンテキストを構築する方法です。私は偽のフォーム コレクションを構築し、それを bindingContext オブジェクトに詰め込んでいます。

最後に、仕様の 1 つから .BindModel() を実行すると、仕様が null 参照例外をスローします。

それが何であるかの手がかりはありますか?

必要に応じて、お気軽にお問い合わせください。私は何かを当然のことと思っていたかもしれません。

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

nunit - 1つのプロジェクトでMSpecとNUnitのテストを行うことは可能ですか?

NUnitを使用した単体テストプロジェクトがあります。mspec(machine.specifications)アセンブリを参照に追加すると、ReSharperとTestDriven.Netの両方がNUnitテストの実行を停止し、mspecテストのみを実行します。

NUnitとmspecの両方のテストを共存させ、R#とTD.Netのテストランナーを使用して同じプロジェクトで実行できるようにする方法や設定はありますか?