問題タブ [pex]

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

c# - テスト対象のPEXコードを単一のメソッドに制限しますか?

PEXのテスト対象コードを単一のメソッドに制限できますか?アセンブリとクラスに制限できることは承知していますが、メンバーについてはどうでしょうか。

私は基本的に、次の方法で100%のコードカバレッジを達成しようとしています。

次のPUTは、12/15のコードカバレッジを達成ます。これは、返される可能性のある2つの値のうちの1つのみをテストしているためです。

このPUTを完全にカバーするには、メソッドが両方のブランチにヒットするようにオブジェクトの状態を変更する必要があります。ファクトリメソッドを使用して個別のPUTを使用してさまざまな状態を設定することでこれを満たすことができますが、これにより、完全なカバレッジの1つのPUTではなく、不完全なコードカバレッジの2つのPUTが残ります。理論的には、2つのPUTの合計カバレッジは100%になると思いますが、 CIを適切に設定できるように、実際にはその100%の数値が必要です。

したがって、同じPUT内の他のブランチに到達するには、上記の2行に次のコードを追加する必要があります。

おそらく、GetLastSymbolメソッドのコードカバレッジは100%になりましたが、テスト対象の型に別のメソッド呼び出しを導入したため、コードカバレッジは20/29に低下します。

単一のメソッドのコードカバレッジのみを測定するようにPUTを制約するにはどうすればよいですか?私はこの測定基準を完全に誤解している可能性があることを認識しているので、これが当てはまる場合はその理由を説明してください:)

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

pex - PexChoose 非ジェネリック メソッド

実行時に PexChoose の戻り値の型を指定する方法はありますか? たとえば、PexChoose.Value(name, Type)?

これは、実行時の制約に応じて異なる型の値を生成する一般的なモデルを作成するのに役立ちます。

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

moles - アセンブリ内のファイルをmoledから除外する

私は、チームが使用するレガシーコードのモッククラスを生成するためにmolesを使用しています。アセンブリ内の特定のクラスをmoledから除外することは可能ですか?レガシーコードにある自動生成されたクラスで、moledから除外したいエラーがたくさん発生します。

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

sharepoint-2010 - Moles が SharePoint.Behaviors for .NET v4.0 を採用するのはなぜですか?残りはすべて v3.5 です。

大規模な SP 2010 サンドボックス ソリューションの一部として、SharePoint 2010 オブジェクト モデルにアクセスする ClassLibrary があります。すべてのプロジェクトは、.NET v3.5 (クライアント プロファイルではありません) を対象としています。次に、ClassLibrary をテストするために使用される ASP.NET WebApplication プロジェクトがあります。まだ .NET v3.5 です。

SPContext.Current をモックするために Microsoft Moles を使用しようとしています。これは既に知っていて使用したことがありますが、この問題に遭遇しました。ビルドごとに、moles フレームワークは常にMicrosoft.SharePoint.Behaviorsランタイム v4.0.30319 の DLL を順番に選択します。 MolesAssemblies にコピーします。代わりに、Microsoft.SharePoint.Molesv2.0.50727 を選択します。

ちなみに、これらは にある DLL にすぎませんC:\Program Files\Microsoft Moles\MolesAssemblies\Microsoft.SharePoint\14.0.0.0__71e9bce111e9429c。しかし、Moles のインストール中に、v4.0 と v3.5 の両方の Moles が作成されたことを覚えています。

Moles にランタイム v3.5 の DLL をビルドおよび/またはコピーするように指示する方法はありますか? それとも、ほくろがそれらを拾うことができるように、それらを構築して保管する特別な場所はありますか?

どういうわけか、build( ...\obj\Debug\Moles\moles.args) 中に作成された一時オプション ファイルも調べましたが、最後のオプションは実際には/clrversion:v2.0.50727 /clrversion2 /targetframeworkversion:v3.5.

環境: Windows 7 64 ビット、VS 2010 SP1、Moles v0.94.51023.0 - .NET v4.0.30319 (Moles のみインストール、Pex なし)。

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

c# - メソッドDateTimeParse.TryParse(String、DateTimeFormatInfo、DateTimeStyles、DateTime&)がインストルメントされていないのはなぜですか?

いくつかのPEXサンプルを機能させようとしていますが、DateTime.TryParse / DateTime.Parseを使用すると、期待外れの結果が生成されます。Pexは興味深いパラメーターを考え出しません。これを到達可能な意味でラップすると、単に1MissedGoalと表示されます。

これは、DateTimeParse.TryParseがインストルメントされていないことについて受け取ったメッセージが原因であると思いますが、そもそもなぜインストルメントされていないのですか?ドキュメント「MicrosoftPexのパラメータ化されたテストパターン」で、何も興味深いことがないのに、例としてDateTimeが使用されているのはなぜですか。

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

c# - Microsoft PEX がエラー メッセージ「Path Bounds Exceeded」を放棄する

Web アプリケーションの DAL レイヤーで Pex を実行しているときに、Pex でエラー メッセージ Path Bounds Exceeded が表示されます。

この例外を続行し、DAL レイヤーで PEX を実行する手順を説明してください。

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

c# - PexおよびUnicodeエンコーディング

私は遊んでPexいて、簡単なクラスを持っています。コードは次のとおりです。

私は以下を作成しましたPexMethod

Pex Explorationこのユニットテストを思いついた:

奇妙なことに、スタックがudc00を使用して単体テストを終了し、パラメーター化されたテストに入るとすぐに、paramLineは次のように表されます。

ご覧のとおり、私はすべてのバッファリングをUnicodeで行っています。最終的にメモリストリームから文字列を読み取ろうとすると、中に疑問符が付いたひし形のような奇妙な記号が表示されます。

私が得るエラーは次のとおりです: "PexAssertFailedException" "予期された'奇妙なシンボル'、得られた'�'"

誰かが何が起こっているのか知っていますか?

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

tdd - Moling System.dll

System.Net.WebClientで を使用しているメソッドを単体テストする必要がありSystem.dllます。を Mole しようとしましたSystem.dllが、プロジェクトをコンパイルして Mole への参照を追加しようとするとSystem.dll、次のような一連のエラーが発生しました。

エラー 2

'System.Net.Moles.SFileWebResponse.Dispose(bool)': オーバーライドする適切なメソッドが見つかりません [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\ DGALib.IO.Tests\mgcs 251374 33 DGALib.IO.Tests

エラー 3

'System.Net.Moles.SFileWebResponse.SupportsHeaders': オーバーライドする適切なメソッドが見つかりません [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\DGALib.IO .Tests\mgcs 251575 30 DGALib.IO.Tests

エラー 4

'System.Net.Moles.SHttpWebResponse.Dispose(bool)': オーバーライドする適切なメソッドが見つかりません [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\ DGALib.IO.Tests\mgcs 255264 33 DGALib.IO.Tests

エラー 5

'System.Net.Moles.SHttpWebResponse.SupportsHeaders': オーバーライドする適切なメソッドが見つかりません [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\DGALib.IO .Tests\mgcs 255465 30 DGALib.IO.Tests

エラー 6

'System.Net.Moles.SWebResponse.Dispose(bool)': オーバーライドする適切なメソッドが見つかりません [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\ DGALib.IO.Tests\mgcs 303123 33 DGALib.IO.Tests

エラー 7

'System.Net.Moles.SWebResponse.SupportsHeaders': オーバーライドする適切なメソッドが見つかりません [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\DGALib.IO .Tests\mgcs 303324 30 DGALib.IO.Tests

エラー 8

'System.Net.Moles.SFileWebResponse.Dispose(bool)': オーバーライドする適切なメソッドが見つかりません [C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\s\mgcsproj] C:\DGALibrary\ DGALib.IO.Tests\mgcs 251374 33 DGALib.IO.Tests

そして最後に

エラー 28

コマンド ""C:\Program Files\Microsoft Moles\bin\moles.exe" @C:\DGALibrary\DGALib.IO.Tests\obj\x86\Debug\Moles\moles.args" はコード -1002 で終了しました。DGALib.IO.Tests

ほくろはできませんsystem.dllか?

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

c# - pex を使用して PropertyInfo を反復すると、indexoutofboundsexception が発生するのはなぜですか?

私は次の方法を持っています:

Pex 探索は、コードの次の部分で例外を返します。

なぜ得られるのか理解できません:

システム エラー: インデックスが配列例外の範囲外でした。

PexAttribute または PexAssume を追加しますか? 助けていただけますか?

「名前」は「rs」にあり、null と等しくありませんが、問題は「pi.SetValue(o, s, null);」にあります。

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

c# - Pex を使用した単体テスト

Pex を使用して次のコードの単体テストを行いたい:

この関数は、グリッドビューの行からテキストを検索し、入力文字列をグリッドビューのマップフィールドに置き換えます。

Pex を使用して単体テストを行う方法は?