2009-08-22 53 views

回答

2

在MSTest的所生成的访问器是有测试类的私处。所以已经在那里,我会问自己,我们是否应该明确地测试内部。

我相信单元测试只应该锻炼一个类的公开表情,因此生成的存取器的东西会变得过时。根据我的经验,这是一件好事,因为我发现它们不是微不足道的,尤其是当事情发生变化时(正如它们通常在进行重构一样)。

0

如果使用访问者,则可以在不更改API的情况下更改底层实现。

通过公开领域揭露了如何存储数据的内部。使用公共属性可以更灵活地改变数据在内部存储的方式,而不会破坏公共接口。

在C#3.0和更高,自动实现 性质使得属性声明 更简洁当在属性访问不需要额外的逻辑 。 它们还使客户端代码来创建 对象当你声明一个属性,如下面的示例所示 中, 编译器创建一个私有,匿名 支持字段只能通过属性的get访问 并设置 存取。

Auto-Implemented Properties

例如:

// Auto-Impl Properties for trivial get and set 
public string Name { get; set; } 
public int CustomerID { get; set; } 
1

Roy Osherove's The Art of Unit Testing中,他提到了关于课程消费者的一件非常重要的事情。单元测试是消费者并使用API​​。如果你需要改变你的api的可视性然后测试那么你应该。如果可以避免使用访问器,请勿使用访问器。

其实我建议读这本书:-)