2012-01-11 27 views
0

我有一个关于我重构的问题。 我想检查一下系统和对象的状态是否相同。 由于系统类型的原因,我无法同时创建相同的2个对象,而是一个接一个地创建。对象是大的。重构C#应用工具

我想过把它们序列化成一个文件并进行比较。

  1. 是否有另一种方法做比较?
  2. 我是否需要遍历所有对象并添加属性[Serializable]?
  3. 对象是COM并且没有该属性会发生什么?
  4. 如果一个对象包含另一个对象,它会将其序列化为?

回答

1

我首先想到的是回到重构规则。

  1. 裹的代码在单元测试中重构之前之后小步重构
  2. 重构
  3. 测试每一个细小的变化

虽然我没有用它,Orsol的答案(Object Comparison API)声音很有希望(问题1)。至于序列化的路径,.NET包装应该帮助序列化的对象,但是最终你可能会重击自动生成的代码,所以这是一个短期的解决方案。序列化到文件和比较是一个短路径选项。

即使您未计划在将来重新构建代码(或扩展,更改等),我仍然认为花时间设置单元测试是值得的练习。

0

是的,如果你想重构你的代码,首先有一个测试安全网。然后,尝试在婴儿阶段重构。

有时,你知道你想重构什么;然而,很多时候你不知道要重构什么(尽管你可能会猜测有什么不对)。在这种情况下,您可以使用设计气味检测工具,如Designite

+0

请声明您与本网站/服务有任何关联。 – ChrisF 2015-01-16 12:08:58