繁体   English   中英

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

[英]Can I force unit testing of properties using the Visual Studio unit testing framework?

我正在使用Visual Studio 2008进行C#3.5项目,其中有几个需要序列化的对象(它们实现IXmlSerializable)。 在为我的序列化代码编写单元测试时,我想要一种确保在将新属性添加到可序列化对象中时,如果未在我的任何人中对新属性进行序列化和反序列化的通知,则将通知我单元测试。 (通过一些单元测试失败)

这可能吗? 我认为,如果有一个特殊的属性可以用来标记我的属性,那会让Visual Studio单元测试框架知道需要对其进行测试。

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

我想我会尝试编写一组更好的序列化测试,这些测试将使用反射来用唯一值填充对象的所有属性,对其进行序列化,反序列化,然后将初始对象与反序列化的对象进行比较。 当然,如果您的班级中有非平凡的验证检查,这可能会很棘手。 另一方面,对于已知属性,您可以使用已知的好值,对于未知属性,您可以使用随机的值-对于不重要的新属性,这将失败-这就是您想要的。 这样,您可以在添加新属性后测试序列化是否有效(这实际上是您的目标)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM