我在使用C#进行单元测试时遇到了一些困难。
假设我有
class Dummy{
TypeA Foo {get; set;}
TypeB Bar {get; set;}
}
和测试方法
[TestMethod]
public void TestStuff()
{
Type type = typeof(Dummy);
PropertyInfo[] properties = type.GetProperties();
foreach(PropertyInfo property in properties)
{
string result= MyStaticClass.ProcessProperty(property.Name);
Assert.IsFalse(string.IsNullOrWhiteSpace(result));
}
}
测试运行正常,但是当测试失败时,我不知道是哪个属性导致了问题。
在其他测试方法中,我使用[DataTestMethod]
和[DataRow(stuff)]
来提供单个输入并知道是什么导致测试失败。
有没有办法使用反射来做类似的事情?
我是否想到了错误的单元测试?
我想使用这种方法检查一致性,这是完全错误的吗?
答案 0 :(得分:3)
Assert具有许多有趣的属性参数!
您可以执行以下操作:
Assert.IsFalse(string.IsNullOrWhiteSpace(result), $"{property.Name} is null");