Вчера я начал смотреть на FsCheck и пытаюсь написать простой тест, что любой экземпляр DiscountAmount всегда будет иметь отрицательное значение. Мой вопрос в том, можно ли иметь несколько утверждений в одном тесте. Например, здесь я говорю, что сумма, из которой создана DiscountAmount, плюс сумма скидки должна быть равна 0. Но я также говорю, что сумма скидки должна быть меньше 0. Должно ли это быть 2 теста или 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();
}
}
}
}