私は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がコード契約を満たしていないのですか?
実行時に[ツール] - > [オプション] - > [コード契約]の契約チェックを有効にしているとします。 –
@Ryan Gross:はい。 –