2 回答

TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊
創(chuàng)建一個新的自定義異常并在缺少自定義屬性時拋出它:
[Test]
public void ShouldFailIfEmailAddressAttributeIsMissingFromFieldName()
{
//--Arrange
var model = new { Field = 1 };
//--Act
Should.Throw<EmailAddressAttributeNotFoundException>(() => model.ShouldValidateTheseFields(
new List<FieldValidation>
{
new EmailAddressFieldValidation
{
ErrorId = 1,
ErrorMessage = "Message",
FieldName = nameof(model.Field)
}
}));
}
要檢查斷言是否失敗,您需要捕獲斷言異常。在這種情況下,由于使用了 Shouldly 框架,因此在擴(kuò)展方法中拋出了一個 Shouldly.ShouldAssertException:
[Test]
public void ShouldFailIfEmailAddressAttributeHasWrongErrorId()
{
//--Arrange
var model = new TestModelTwo();
//--Act
Should.Throw<ShouldAssertException>(() => model.ShouldValidateTheseFields(
new List<FieldValidation>
{
new EmailAddressFieldValidation
{
ErrorId = 2,
ErrorMessage = "Message",
FieldName = nameof(model.Field)
}
}));
}
使用類:
public class TestModel
{
[EmailAddress(1)]
public string Field { get; set; }
}
擴(kuò)展方法中的失敗斷言是 ErrorId.ShouldBe(2) 當(dāng)它在模型上實際上是 1 時。
- 2 回答
- 0 關(guān)注
- 186 瀏覽
添加回答
舉報