2012-10-14 17 views
6

この(C#の)のような方法があるとします合計がintデータ型に収まらない場合はPexはタイプオーバーフロー/アンダーフローの条件を自動的に検出できますか?

public static int Add(int x, int y) 
{ 
    return x + y; 
} 

は、それはおそらくユニットテストの価値があるエラー状況です。 Pexはそのようなエラーを識別し、それらのユニットテストを生成できますか?

答えて

5

はい、とても上手です。 Pexを導入するときには、Javaライブラリのバイナリソートルーチンにあるバグを頻繁に使用します。このバグは、新しい中点を見つけるときに非常に大きな配列でオーバーフローします。関連するバグのセットはうるう年のバグです。マイクロソフト自身の製品(Azure?)の機能を使用して、これらのうちの1つを野生に表示します。

Pexは、オーバーフロー、アンダーフロー、ヌル参照、無効な引数、さらにはアプリケーションで投げたカスタム例外さえも含め、さまざまな種類のバグをキャッチします。私は、いくつかのスタートガイドを読んで、Pexとコード契約を組み合わせて長期的にあなたの人生をはるかに簡単にすることを強くお勧めします。

+2

ハッシュテーブルを使用するとハッシュ衝突を引き起こすことさえあります。それは良いことです。 – usr

+0

@BryanAnderson、関連する例のリンクを共有できますか?私は質問からメソッド上でPex自動検出を実行しようとしましたが、オーバーフロー/アンダーフロー状態を検出しませんでした。 –

+1

http://channel9.msdn.com/Blogs/Peli/Getting-started-with-Pex-in-Visual-Studio-2008をご覧ください。今は古くなっていますが、まだまだ紹介しています。また、addメソッドをテストするためにオーバー/アンダーフローチェックをコンパイルする必要があるかもしれません。ほとんどのビルドでデフォルトでオフになる傾向があると思います。 –

関連する問題