0
FsCheckを見て、いくつかのテストを書いたところで、より複雑な仲裁を作成するための良い戦略が何であるか不思議です。恣意的な良いアプローチの中に仲裁人を登録していますか?あなたは、別の関連する任意のインスタンスを持つ同じクラスにそれらを追加し、異なるインスタンス間の依存関係が存在する場合に代わりに、直接メソッドを呼び出す場合、このこれは、仲裁人を構成するのに適した戦略ですか?
public class DiscountAmountArbitrator
{
public static Arbitrary<DiscountAmount> DiscountAmounts()
{
Arb.Register<AmountArbitrary>();
var toReturn = (from a in Arb.Generate<Amount>()
select new DiscountAmount(a))
.ToArbitrary();
return toReturn;
}
}
public class AmountArbitrary
{
public static Arbitrary<Amount> Amounts()
{
return Arb.Generate<decimal>().Where(x => x > 0)
.Select(x => new Amount(x))
.ToArbitrary();
}
}
デフォルトの実装である 'shrink'を使用しているので、ジェネレータを定義して' DiscountAmounts'に渡すこともできます。次に、 'arbitrary'インスタンスを別々に登録します。 – Lee