問題タブ [microsoft-fakes]

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 投票する
2 に答える
2599 参照

c# - Process.Start で Microsoft Fakes アセンブリを使用する方法

System.Diagnostics.Process.Start呼び出しをモックしたいので、システムアセンブリに Fakes アセンブリを追加しました。

問題は、StartがSystem.Diagnostics.Processの静的メソッドであるため、Start メソッドのデリゲートをホックできるシムを取得していないことです。

これを行う正しい方法は何ですか?

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

c# - フェイク単体テストの実行時に null 例外をスローする

偽物の単体テストは私にとって非常に新しいものです。今までやったことがなかったので実践してみることにしましたが、Shims.Context.Create() が null 例外をスローするため、偽の単体テストをデバッグできないという問題があります。テストを実行するとうまくいきましたが、デバッグするとnull例外がスローされました。修正方法は?

クラス: FileReader

FileReader クラスの Fakes 単体テスト:

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

tfs - TFS 2012 + VS 2013 + Microsoft Fakes コンパイルの問題 (TFSBuild 中のみ)

TFS 2012 (Update 3) と VS 2013 RC を使用しています。メイン プロジェクト/アセンブリと UnitTest プロジェクトの 2 つのプロジェクトを含む .sln ファイルがあります。単体テスト プロジェクトでは、Microsoft Fakes を利用しています。Visual Studio (私たちは Premium を使用しています) 内で、.sln をコンパイルしてテストを実行できます。ビルド エージェントでは、Visual Studio を使用して .sln をコンパイルおよびビルドし、テストを実行できます。しかし、ビルドをキューに入れると、Fakes アセンブリが見つからないため、UnitTest プロジェクトのビルドに失敗します。Visual Studio でビルドするときのように、動的に作成しているようには見えません。通常、VS では偽の dll が作成され、それが FakeAssemblies フォルダーに配置されます。ビルドが失敗した後、ログインして、FakeAssemblies ディレクトリがまったく作成されていないことを確認できます。

エラーは... C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets (1605): この参照を解決できませんでした。アセンブリ "System.Web.Http.5.0.0.0.Fakes" が見つかりませんでした。アセンブリがディスク上に存在することを確認してください。コードでこの参照が必要な場合、コンパイル エラーが発生する可能性があります。

ビルドはデフォルトのテンプレートを使用しており、.sln (メイン アセンブリと単体テスト プロジェクトを含む) をビルドすることを選択しました。その .sln に UnitTest を含めるべきではありませんか? ビルド中に UnitTest をコンパイルする他の方法はありますか?

Visual Studio のように Fake アセンブリを動的に作成してビルドしない理由を知っている人はいますか?

ありがとう!!!

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

c# - Fakes を使用しているときに、テスト中のメソッド内のプライベート メソッドへの呼び出しを「モック アウト」する

私は Microsoft Fakes を使用して、非常に長いメソッドを分析し、それをリファクタリングして、よりよく理解しています。別のプライベート メソッドにリファクタリングするのに適していると思われる行をいくつか分離しました。私が取っているアプローチは、変更による影響を最小限に抑えるために、コードを手動で変更しないことです (すぐに使用できるリファクタリングのみを使用します)。問題は次のとおりです。問題の行を別のプライベート メソッドにリファクタリングしたら、それらの行に関連付けられているすべてのセットアップ コード (およびそれらをラップする新しいプライベート メソッド) を削除し、それを「モック アウト」したいと思います。デフォルトの定型回答を提供して電話をかけます。これはスタブ/シムのようなにおいがしますが、テスト対象のクラスについて話しているので、「モックアウト」メソッドを除いてそのコードを実行するクラスが必要です。Rhino Mocks では、PartialMock を使用してそのような呼び出しをスタブ化します (最初に仮想化した後!!!) が、この状況で Fakes を使用できますか? ありがとう。

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

c# - ADO.NET 固有のテスト データセット ID のモック

Microsoft Fakes Frameworkを使用して、レコードを挿入する方法をテストする単体テストに取り組んでいます。TransportControllerTestTransportManagerおよびの 3 つのクラスがありDbControllerます。TransportControllerTestユニットテストクラスです。これTransportManagerはビジネス ロジック層の一部であり、DbController3 つのメソッド (挿入、取得、および削除) があります。これらの最後のメソッドは、ADO.NETを使用してデータベースにアクセスします。

私の単体テストでは、挿入メソッドをテストしたいと思いTransportControllerます。このコントローラは と を2dbController回呼び出します。最後の呼び出しは、最初の呼び出しで挿入に使用されたパラメーターを渡すことによって、最後に生成されたキーを提供します。では、次のように呼び出して、生成された ID にアクセスできます。dbController.insert()dbController.get()TransportController

上記の値をモックしたいので、次の式は true です。

私は次のことを試しました:

しかし、これはうまくいきません。テストで与えられた式を true にするにはどうすればよいですか?