C# 我可以使用VisualStudio单元测试框架强制对属性进行单元测试吗?

C# 我可以使用VisualStudio单元测试框架强制对属性进行单元测试吗?,c#,visual-studio,unit-testing,C#,Visual Studio,Unit Testing,我正在使用VisualStudio2008进行一个C#3.5项目,其中我有几个需要序列化的对象(它们实现IXmlSerializable)。在为序列化代码编写单元测试时,我希望有一种方法可以确保当我向可序列化对象添加新属性时,如果在我的任何单元测试中都没有测试新属性的序列化和反序列化,则会通知我。(通过一些失败的单元测试) 这可能吗?我认为,如果有一个特殊的属性可以标记我的属性,那么就可以让VisualStudio单元测试框架知道它需要测试 还是我的方法完全偏离了基础?如果需要,我可以切换到不同

我正在使用VisualStudio2008进行一个C#3.5项目,其中我有几个需要序列化的对象(它们实现IXmlSerializable)。在为序列化代码编写单元测试时,我希望有一种方法可以确保当我向可序列化对象添加新属性时,如果在我的任何单元测试中都没有测试新属性的序列化和反序列化,则会通知我。(通过一些失败的单元测试)

这可能吗?我认为,如果有一个特殊的属性可以标记我的属性,那么就可以让VisualStudio单元测试框架知道它需要测试


还是我的方法完全偏离了基础?如果需要,我可以切换到不同的单元测试框架。

我想我应该尝试编写一组更好的序列化测试,使用反射来使用唯一值填充对象的所有属性,序列化它,反序列化,并将初始对象与反序列化对象进行比较。当然,如果在类中有非平凡的验证检查,那么这可能会很棘手。另一方面,您可能会对已知属性使用已知的良好值,而对未知属性使用随机值-这将对非平凡的新属性失败-这正是您想要的。 通过这种方式,您可以在添加新属性后测试序列化是否有效(您的真正目标是什么)


如果上面的选项不可行,那么您可以尝试生成一个覆盖率报告(通常是xml格式的),然后编写一个简单的工具来确保您的类得到了充分的测试。我认为这将是非常困难的工作,我不确定这是值得的努力。据我所知,没有更好的方法来检查是否调用了属性。

您使用的是什么序列化策略?对象实现了IXMLSerializable为什么通知您这样的更改很重要?为什么添加属性是一个问题?@Steven添加属性不是一个问题,我希望得到一个视觉提示,我需要将该属性添加到我的序列化单元测试中。我认为您可以解析xml,看看是否有您不知道的元素。