gpt4 book ai didi

c# - 断言被测系统应该抛出断言异常

转载 作者:太空狗 更新时间:2023-10-29 23:05:02 24 4
gpt4 key购买 nike

我正在创建一个扩展方法,该方法对对象执行测试以查看它是否具有特定的自定义属性。

我想为我的扩展方法创建一个单元测试。我如何断言扩展方法中的测试应该失败?

[Test]
public void ShouldFailIfEmailAttributeMissingFromFieldName()
{
//--Arrange
var model = new { Field = 1 };

//--Act
model.ShouldValidateTheseFields(new List<FieldValidation>
{
new EmailAddressFieldValidation
{
ErrorId = 1,
ErrorMessage = "Message",
FieldName = nameof(model.Field)
}
});
//--Assert

}

基本上,ShouldValidateTheseFields 进行反射并断言它应该在名为“Field”的字段上有一个自定义属性,我需要断言它失败了。

最佳答案

捕获预期的异常。如果没有抛出则测试失败

[Test]
public void ShouldFailIfEmailAttributeMissingFromFieldName() {
//--Arrange
var model = new { Field = 1 };

//--Act
try {
model.ShouldValidateTheseFields(new List<FieldValidation> {
new EmailAddressFieldValidation {
ErrorId = 1,
ErrorMessage = "Message",
FieldName = nameof(model.Field)
}
});
} catch(MyExpectedException e) {
return;
}

//--Assert
Assert.Fail();
}

根据所使用的测试框架,应该有一种方法可以让您断言测试的预期异常,这基本上遵循与上面类似的格式。

关于c# - 断言被测系统应该抛出断言异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50747788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com