我一直在寻找单元测试的好处,并验证代码的正确性和附加的好处,你会自然地创建松耦合的代码,如果你做得很好。换句话说,一个单位就像一种方法一样小 - 不会更大。这些似乎是大2.我只是想知道,如果良好的单元测试将环绕代码并保护其功能免受其他开发人员代码更改(假设单元测试失败是失败的构建)。我还忽略了其他的好处吗?单元测试是否保护您的代码免受其他开发人员的错误?
回答
有一个体面的单元测试覆盖其他(忽略)好处是事实上,它实际上可以鼓励开发人员将他们的脚趾陷入一个大的解决方案/旧的旧代码,知道他们有一个安全网,应该提供即时当重构出错时提供反馈。
是的,大多数时候,单元测试确实会防止其他开发者的错误。但是,这并非一直如此。对于更可行的解决方案,测试点是更好的选择。
取决于其他开发人员是否不会删除您的测试。
但是,严重的是,如果你正确地模块化你的代码并使测试变得清晰,通常人们会考虑改变它,如果它打破了测试。
除非他们有充分理由进行更改 - 然后他们需要相应地更改测试,以描述新功能。
单元测试是否保护您的代码免受其他开发人员的错误?
不完全是。
单元测试隔离了一段特定的代码(“单元”),并以正面和负面的方式调用它,每次都会根据预期的结果测试输出。这确保了该装置的稳健性,并且在该装置的范围内符合预期要求 - 。
这不会阻止其他开发人员在将值传递给您的代码之前出错,或者对您的返回值进行错误操作。传递给你的代码的值可以是有效的,但仍然是错误的。例如,你的代码可能期望一个0到100之间的正整数,但是你的代码并不知道一个特定的调用者传递了50的值是不正确的 - 你的代码只能根据接收到的内容行事,它没有其他的围绕该值的上下文。在这种情况下,对该调用代码进行单元测试可能会发现问题,但是对代码的单元测试不会。
我只是想知道,如果良好的单元测试将圈定代码,并保护其功能从其他开发人员的代码更改
单元测试没有圈护栏网东西。假设写得很好的测试,他们会告诉你,如果你的代码被改变,它不再符合它的原始意图。他们不会告诉你,如果调用者在运行时传递了错误的值,但他们将帮助您确保您的代码在传入错误值时正常工作。
根据我的经验,单元测试仅作为就像编写代码的人一样好。如果这个人是一个糟糕的编码员,或者没有正确理解要求,那么测试可能毫无价值。过去我见过一些真正糟糕的单元测试,因此我总是建议他们应该只是测试方法的一部分,您不应该仅仅依赖它们 - 它们只是一种严谨的方法的一部分。
- 1. 保护源代码免受离开公司的过去开发人员盗窃
- 2. 受保护插槽的单元测试
- 3. 单元测试受保护成员的命令
- 4. 在开发过程中保护源代码免受盗窃
- 5. 检查代码是否受到保护
- 6. 错误访问受保护的成员
- 7. 您是否将单元测试与集成测试分开了?
- 8. 免费访问受保护的成员
- 9. Web开发人员是否需要“confim resend”保护?
- 10. 作为一名专业开发人员而不是编写单元测试是否可以接受?
- 11. 考虑开发人员时间的单元测试GetHashCode
- 12. 您是否应该编码以保护您的应用程序免受不良编码器的侵害?
- 13. 使用免费的开发人员帐号添加测试人员的UDID
- 14. ASP.NET会员是否受Firesheep保护?
- 15. Flash开发人员:您测试了哪些Flash版本的Flash?
- 16. 单元测试期间如何访问基类的受保护成员?
- 17. 保护其他程序员所做更改的代码
- 18. 受保护属性的单元测试Rails
- 19. 我应该访问单元测试的受保护方法吗?
- 20. 单元测试受C#保护的方法
- 21. 如何对受保护的方法进行单元测试?
- 22. 单元测试:不能继承受保护的变量
- 23. 为单元测试添加受保护方法的好习惯?
- 24. 单元测试 - 是否有单元测试调用其他单元测试的不良形式
- 25. 测试受保护的方法是否被调用
- 26. Trac中的门票的多名受理人(开发人员,审核人员,测试人员)
- 27. 如何保护特定开发人员的特定PHP源代码文件夹?
- 28. 什么是最好的价值为单一开发人员的C#代码保护
- 29. 什么是保护.net源代码免受反编译
- 30. 如何查找(并保留)作为开发人员的测试人员
正确的封装将有助于防止其他开发人员的错误。通过将方法,模块或逻辑的非计划使用仅限于“让他们使用”的内容,那么您就限制了其他开发人员的错误。单元测试没有。相反,单元测试经常需要您打开您的代码库,而不是功能上必要的。 单元测试强制执行的唯一一件事就是您的模块和方法按照预期的方式继续工作。 –