我的产品程序集和单元测试程序集之间通常有 1:1 的映射。我通常会尝试保持组件总数较低,典型的解决方案可能看起来像......
- 客户端(包含视图、控制器等)
- 客户端测试
- 通用(包含数据/服务合同、通用实用程序等)
- 通用测试
- 服务器(包含域、服务等)
- 服务器测试
- 服务器.WebHost
最近在工作中,人们一直在提到只有一个单元测试项目而不是通过他们正在测试的程序集来分解它们。我知道以前,如果您在构建过程中运行 NCover 等,这会让生活变得更轻松(当然不再重要)。
单个单元测试项目与多个单元测试项目背后的一般原理是什么?除了减少解决方案中的项目数量之外,是否还有采取这种方式或另一种方式的具体原因?我的印象是这可能是那些“偏好”的事情之一,但谷歌搜索并没有出现太多。
有没有明确的答案因为这完全取决于您的工作内容以及个人品味。然而,您肯定希望以某种方式安排事情,以便您可以有效地工作.
对我来说,这意味着,我想快速找到东西,我想看看什么测试什么,我想运行更小的东西以获得更好的控制,以防我还想在测试中分析或做其他事情。当您调试失败的测试时,这通常很有用。我不想花额外的时间去弄清楚任何事情,它应该自己说明事物是如何映射的以及什么属于什么。
对我来说另一件非常重要的事情是我想尽可能地隔离并有清晰的界限。您希望提供一种简单的方法来将大项目的部分内容重构/移出为独立项目。
就我个人而言,我总是围绕软件的结构安排测试,这意味着类与其测试、库和测试可执行文件之间的一对一映射。这为您提供了一个很好的测试结构,它反映了您的软件结构,从而为查找内容提供了清晰度。此外,它还提供了自然的分割,以防某些东西被独立移出。
这是我在尝试了各种方法之后的个人选择。
在我看来,当事情太多的时候进行分组并不一定是一件好事。可能是这样,但我相信在本次讨论的背景下,对于单个测试项目来说这是错误的论点。太多包含许多文件的测试项目意味着只有一个包含大量测试文件的项目。我相信真正的问题是你正在研究的解决方案变得越来越大。也许你还可以做其他事情来避免“同一个世界”? :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)