問題タブ [vs-unit-testing-framework]

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 に答える
1134 参照

c# - Moq セットアップによる参照型パラメーターのマッチング

ここまたはここで尋ねられたものと同様の問題がありますが、私の場合、解決策は当てはまらないようです。

次のクラスを検討してください。

テスト用の次のコード ( callslist はデバッグ専用です):

上記のテストは、次の例外で失敗します。

ProductsWebService.GetClassLevel が呼び出されていないのに呼び出されていると確信してgetClassLevelLang.Equalsいます (デバッガーで確認)。さらに奇妙なことに、リストをcalls呼び出す直前に実際の値を確認しましたが、VerifyAll()空です。

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

.net - 順序付きテストにカテゴリ属性を割り当てるにはどうすればよいですか?

CategoryAttribute次のように、VS-2012 のテスト エクスプローラー ペインを「特性」で並べ替えることができるように、単体テストメソッド (「シリアル化」) のカテゴリをすべて でマークしています。

テスト エクスプローラー ペイン

ソリューションの単体テスト プロジェクトに順序付きテスト ( と呼ばれるserialization.orderedtest) を追加し、これらすべての単体テスト メソッドを特定の順序で実行するように割り当てました。

私の質問: この順序付けられたテスト オブジェクトに「シリアル化」カテゴリを割り当てて、このビューで他のものと一緒に整理するにはどうすればよいですか?

** 編集 **

PropertiesVS-2012 テスト エクスプローラーのテスト項目の右クリック コンテキスト メニューにオプションがある可能性があることが示唆されています。残念ながら、ありません...

ここに画像の説明を入力

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

c# - カスタムメッセージとデフォルトメッセージ

Assert.AreEqual(object, object, string)カスタムメッセージとデフォルトメッセージを組み合わせたメッセージを指定する方法はありますか?

私は次のコードを持っています:

以下のVSユニットテストフレームワークからのメッセージ例に加えて、テストケースキーを指定したいと思います。

Assert.AreEqual failed. Expected:<True>. Actual:<False>.

おそらくのようなものFailed on the following test case: AB

0 投票する
4 に答える
4168 参照

asp.net-mvc - ASP.NET MVC の単体テスト フレームワーク?

MVC の単体テスト フレームワークを勧めてくれる人はいますか? 多くの選択肢があり、どのフレームワークを選択すればよいか迷ってしまいます。

NUnit または XUnit.Net または MSTest ??

ありがとう、ベンカット

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

c# - DataTestMethod の各 DataRow の前後で TestInitialize と TestCleanup が実行されない

以下に示すのは、Windows Phone ユニット テスト アプリで Mtest を使用して記述されたコードです。
TestMethod1 という通常の TestMethod と 3 つの DataRows を持つTestMethod2という DataTestMethodがあります。

デバッグ モード (Visual Studio では Ctrl+R、Ctrl+T) でテストを実行すると、出力パネルに次のように表示されます。

TestInitialize
TestMethod1
TestCleanup
TestInitialize
TestMethod2 param=c
TestMethod2 param=a
TestMethod2 param=b
TestCleanup

ご覧のとおり、TestInitialize は 2 回だけ実行されました。1 回は TestMethod1 の前、もう 1 回は TestMethod2 の前にパラメータ c を指定して実行されました。
これは、TestMethod1 の後に 1 回実行され、最後に 1 回実行された TestCleanup についても同じです。

TestMethod か DataTestMethod かに関係なく、各テストの前後に TestInitialize と TestCleanup が実行されることを期待します。そうしないと、1 つのテストの実行が次のテストに影響を与える可能性があります。

私はそれが次のようになると予想しました:

TestInitialize
TestMethod1
TestCleanup
TestInitialize
TestMethod2 param=c
TestCleanup
TestInitialize
TestMethod2 param=a
TestCleanup
TestInitialize
TestMethod2 param=b
TestCleanup

同じ問題を抱えている人を他に見つけられませんでした。何が間違っていますか?

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

c# - カスタム ユニット テスト アサート クラスを非静的にする必要がありますか?

組み込みの Visual Studio 単体テスト ツールを使用して、CRM 2011 に対して単体テストを実行します。多くのテストは、エンティティの作成をアサートします。

(GetFirstOrDefault は、CRM から ID で連絡先を取得しようとする拡張メソッドであり、見つからない場合は null を返します)

次のように動作する独自の Assert メソッドを作成したいと思います。

最初は から継承するのがいいと思ったのAssertですが、残念ながらこれは static クラスです。次に、次のような新しい静的クラスを作成しました。

次のように呼び出されます。

これは問題ありませんが、サービスを 1 回設定すれば、毎回呼び出す必要はありません。

しかし、Visual Studio はテストをマルチスレッドで実行しようとするでしょう。つまり、Service静的プロパティを設定すると、別のテストで別のサービスによってオーバーライドされる可能性があります (IOrganizationServiceスレッドセーフではないだけでなく)。

マルチスレッドについて心配する必要がないように、AssertCrm クラスを非静的にする必要がありますか? 私が見逃している簡単なテクニックはありますか?

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

c# - アサートが失敗した場合、カスタム アサート クラスは何をすべきか?

単体テスト用のカスタム Assert クラスを作成しましたが、テストが失敗したことを通知したいときに何をすればよいかわかりません。

ClassをMicrosoft.VisualStudio.TestTools.UnitTesting.Assertリフレクトしたところ、HandleFail を呼び出していることがわかりました。

しかし、これは内部メソッドです。リフレクションを使用して呼び出すことができますか、それとも AssertFailedException をスローする方が理にかなっているでしょうか? 私が見逃している別のオプションはありますか?

0 投票する
0 に答える
777 参照

c# - Visual Studio 2012 ビルドは、unittest フレームワーク 10.0 を使用します-> 失敗します

VS 2012 を搭載した TFS ビルド サーバーを使用しており、チーム プロジェクトには単体テストがあります。以前は 2010 年でしたが、すべてうまくいきました。サーバーを再インストールし、VS2012 を使用しています。ビルドで単体テストが開始されると (buildlog に従って)、Visual Studio 10 フォルダーの下で MSTest.exe が実行されます。単体テストを開始できません - ログにエラーはありませんが、ハングするだけです。

コマンド (ログ ファイルのスニペット) を手動で実行し、フォルダーを Visual Studio 11 に置き換えると、単体テストが実行されます。

VS 2012 が mstest の 10 バージョンを使用しているのはなぜですか? 使用されている他のすべての VS 実行可能ファイルは 11 バージョンですか? 「場所mstest.exe」は、同じサーバー内の11未満のフォルダーを示しています。

Visual Studio 10 フォルダーがあるのはなぜですか? このサーバーにはバージョン 10 がインストールされていません。

単体テスト プロジェクトでは、正しい unittest フレームワークが参照されますが (VS 11 フォルダーの下)、プロパティによるとバージョン 10.0.0 のようにも見えます。

ビルド サーバーのログには次のものがあります。


ソース VSTTExecution からのイベント ID 0 の説明が見つかりません。このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、インストールが破損しています。コンポーネントをローカル コンピューターにインストールまたは修復できます。

イベントが別のコンピューターで発生した場合、表示情報をイベントと共に保存する必要がありました。

イベントには次の情報が含まれていました。

Microsoft.VisualStudio.TestTools.Common.DiaHelper.GetSymbolsFileName (文字列 imagePath) で

メッセージ リソースは存在しますが、文字列/メッセージ テーブルにメッセージが見つかりません


(

--- 内部例外スタック トレースの終了 ---


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

asp.net-mvc - メソッドの包括的な単体テスト

私はコントローラーメソッドを持っています -CurrentValues

MS-VS-Unit Test Suite を利用し、必要に応じて Moq も使用して、このコントローラーを包括的に単体テストしたいと思います。

このメソッドの核となるのは、 - から取得した値ですGetValues(page)

  1. このメソッドの包括的な単体テストを行うために作成できるテストは何ですか? サンプル コードは、テスト シナリオと共に役立ちます。
  2. Moq を使用して ValueRetrieverViewModel をモックする方法は? ここで特に他の目的に Moq を使用する必要がありますか、または使用できますか?
0 投票する
2 に答える
3754 参照

visual-studio-2012 - Visual Studio 2012 - 呼び出しのターゲットによって例外がスローされました。

テスト エクスプローラーを読み込もうとすると、Visual Studio 2012 の単純なプロジェクトで次のエラーが発生します。

これは私のテストプロジェクトです:

何らかの理由で、テスト エクスプローラーがテストを検出しません。おそらく、私の質問の冒頭で例外が発生したことが原因です。これが Visual Studio 2012 のバグであるかどうかは誰にもわかりません。