어제 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();
}
}
}
}
주로 의견을 기반으로하는 반면 특정 테스트 사례에 초점을 맞춘 여러 가지 어설 션이 있으면 안됩니다. – Nkosi