我目前正在运行一些测试,确保每个实现特定接口的类都得到了一些尊重。
目前正在winform应用程序中运行,它允许我为每个类提供结果,如果它们正常或出现问题。
我想将其转换为TestClass / TestMethod,但我目前还不知道如何。
问题是我需要为每个班级得到一个结果(或者至少对每个不能正常工作的班级都有错误。
目前我已经使用了这段代码:
foreach (Type type in GetTypesToCheck())
{
m_logger.Debug("Checking type " + type.FullName);
FieldInfo staticField;
dynamic definition;
if (CheckStaticField(type, out staticField) && CheckDefinitionPresent(type) && CheckParentDefinition(type, staticField, out definition) && CheckRegistration(type, definition) &&
CheckSubTypes(type, definition))
{
m_logger.Information(type.FullName + ": OK");
}
}
有没有办法用UnitTests进行这种检查并且每个类有一个结果(或每个类有多个结果)?
答案 0 :(得分:0)
您可以将失败的类型存储在临时集合中,然后对该集合执行必需的断言。
以下是一个例子:
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var failedTypes = new List<Type>(); //to keep failed types
foreach (Type type in GetTypesToCheck())
{
FieldInfo staticField;
dynamic definition;
if (!CheckStaticField(type, out staticField)
|| !CheckDefinitionPresent(type)
|| !CheckParentDefinition(type, staticField, out definition)
|| !CheckRegistration(type, definition)
|| !CheckSubTypes(type, definition))
failedTypes.Add(type);
}
Assert.IsTrue(
failedTypes.Count == 0,
"Failed types: " + string.Join(", ", failedTypes)
);
}
}