2011-07-28 7 views
0

私はpexテストを書こうとしていますが、いつも私が望んでいたパラメタの1つとして誤った値を与えていることに気付きました。私はvalueは本当だろうことを保証し、私は探査を行うPEXだろうシナリオをテストしたかったPexがコード契約を満たしていない

[PexMethod] 
public void TestCtor(bool value) 
{ 
    ArbitraryType myType = new ArbitraryType(value); 
} 

:私のテストでは、この(:あり/以上のparamsなかったが、それ以外は全く異なっている簡体字)のように見えました。私はこのように見えた別のテスト製:

[PexMethod] 
public void TestCtor(bool value) 
{ 
    Contract.Requires(value == true); 

    ArbitraryType myType = new ArbitraryType(value); 
} 

をしかし、私はペックスはそれを探求していたときに、それはまだvalueに虚偽で吐き出すと、それは「パス」を生成するテスト。要件の後に私がラインを置く場合Contract.Assert(!value);それは別のテストを作成し、valueがアサーションに失敗するためにtrueを渡します。

質問は、なぜPexがコード契約を満たしていないのですか?

+0

実行時に[ツール] - > [オプション] - > [コード契約]の契約チェックを有効にしているとします。 –

+0

@Ryan Gross:はい。 –

答えて

1

私はPexとは試験方法で契約を行うために何が起こっているかわからないんだけど、私はそれは良いことであることを見ることができない:)

あなたはペックスはこれをしたい場合は、正しい事するにはPexAssume.IsTrue(value)を使用します。

関連する問題