我是一个现在也用C#编写的Java编程。我已经看到了由VS测试生成软件生成的Accessor类(以便从测试访问私人成员或功能)。我应该故意创建访问者吗?如果是这样,为什么从Java迁移到C#我应该如何知道访问器类
0
A
回答
2
在MSTest的所生成的访问器是有测试类的私处。所以已经在那里,我会问自己,我们是否应该明确地测试内部。
我相信单元测试只应该锻炼一个类的公开表情,因此生成的存取器的东西会变得过时。根据我的经验,这是一件好事,因为我发现它们不是微不足道的,尤其是当事情发生变化时(正如它们通常在进行重构一样)。
0
如果使用访问者,则可以在不更改API的情况下更改底层实现。
通过公开领域揭露了如何存储数据的内部。使用公共属性可以更灵活地改变数据在内部存储的方式,而不会破坏公共接口。
在C#3.0和更高,自动实现 性质使得属性声明 更简洁当在属性访问不需要额外的逻辑 。 它们还使客户端代码来创建 对象当你声明一个属性,如下面的示例所示 中, 编译器创建一个私有,匿名 支持字段只能通过属性的get访问 并设置 存取。
例如:
// 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的可视性然后测试那么你应该。如果可以避免使用访问器,请勿使用访问器。
其实我建议读这本书:-)
相关问题
- 1. 我应该主张从访问迁移到(我)sql
- 2. 从Java迁移到C#
- 3. 我应该从5.0迁移到Java SE 6吗?
- 4. 我应该如何将网站从ZWiki迁移到MediaWiki?
- 5. Django用户在从MySQL迁移到PostgreSQL时应该知道什么?
- 6. 我应该迁移到msqli吗?
- 7. 从直接db访问迁移到本体 - 它有道理吗?
- 8. 如何从C++ COM迁移到C++ CLI
- 9. C++如何访问从Java移植的嵌套类
- 10. 我如何知道谁访问了phpmyadmin
- 11. JUnit Developer转移到TestNG。我应该知道什么?
- 12. 从C迁移到C++
- 13. 我应该如何知道jquery中对象的返回类型?
- 14. 迁移C#到Python - Random类
- 15. 我该如何解决一个坏轨道数据库迁移
- 16. 我应该关注从VS Pro迁移到VSTS的“陷阱”吗?
- 17. 我应该从ngRoute迁移到ui-router吗?
- 18. 将服务从Axis迁移到Axis2(Java) - 我应该使用哪个MessageReceiver?
- 19. 从Java 6迁移到Kotlin
- 20. 从Rails迁移到Java Spring
- 21. 我不知道如何访问不同子类中的变量
- 22. 从数据集转移到Linq2Sql之前我应该知道什么?
- 23. 不知道如何从Xcode中的类方法访问属性
- 24. 应用程序如何知道从哪个页面访问它?
- 25. 我需要知道从Java到JavaScript?
- 26. 如何将作业从Jenkins1迁移到Jenkins2而不访问Jenkins服务器
- 27. 我该如何访问此类
- 28. SQL Server迁移助理 - 如何将访问权限迁移到SQL Server 2008 R2?
- 29. 从PHP迁移到ASP.Net(单声道)
- 30. 从频道api迁移到firebase