私は昨日FsCheckを見始めました。私はDiscountAmountのインスタンスが常に負の値を持つという簡単なテストを書こうとしています。私の質問は、1回のテストで複数のアサーションを持つことは大丈夫ですか?たとえば、ここで私はdiscountAmountが作成された金額と割引額は0でなければならないと言っています。しかし、私はまた、割引額は0未満でなければならないと言っています。1回のテストで複数のアサートが可能ですか?
public class DiscountAmountTests
{
[Property()]
public void value_or_created_discountAmount_should_be_negative()
{
Arb.Register<AmountArbitrary>();
Prop.ForAll<Amount>(
v =>
{
var sut = new DiscountAmount(v);
var expectedResult = 0;
var result = v + sut;
result.Should().Be(expectedResult);
sut.Value.Should().BeLessThan(0);
})
.QuickCheckThrowOnFailure();
}
public class AmountArbitrary
{
public static Arbitrary<Amount> Amounts()
{
return Arb.Generate<decimal>().Where(x => x > 0)
.Select(x => new Amount(x))
.ToArbitrary();
}
}
}
}
主に意見に基づいていますが、特定のテストケースに重点を置いた複数のアサーションを持つことは問題ではありません。 – Nkosi