.NET测试命名约定

Seb*_*son 19 .net testing unit-testing naming conventions

在.NET(或任何其他语言或平台)中命名测试程序集的最佳约定是什么?

我主要分为这些选项(请提供其他人!):

  • Company.Website - 项目
  • Company.Website.Tests

要么

  • 公司网站
  • Company.WebsiteTests

第一个解决方案的问题在于它看起来像.Tests是网站的子命名空间,而它们在我的脑海中确实更加平行.当一个新的子命名空间发挥作用时会发生什么,例如Company.Website.Controls,我应该在哪里放置该命名空间的测试?

也许它应该是:Tests.Company.WebsiteTests.Company.Website.Controls,等等.

Cla*_*sen 22

我会去的

* Company.Website - the project
* Company.Website.Tests
Run Code Online (Sandbox Code Playgroud)

简短的理由和答案很简单,测试和项目在代码中链接,因此它应该共享命名空间.

如果您想要在解决方案中拆分代码并进行测试,那么无论如何都可以使用该选项.例如,您可以设置解决方案

-Code文件夹

  • 公司网站

- 测试文件夹

  • Company.Website.Tests

  • 此外,您无需以这种方式为Company.Website命名空间添加使用. (6认同)

Mit*_*ers 14

我个人会去

Company.Tests.Website

这样,你就可以在其中拥有一个通用的测试命名空间和项目,遵循与实际项目相同的结构.


Dev*_*ris 7

我实际上有一个备用并行根.

Tests.Company.Website

当你有新的子命名空间时,它可以很好地消除歧义.

  • 为什么选择downvote?评论家可以详细说明吗?它与任何其他提议的解决方案一样好 - 并且有一个好点. (4认同)

Whe*_*lie 5

我是构建测试命名空间的忠实粉丝,如下所示:

Company.Tests.Website.xxx

Company.Tests.Website.Controls

像你一样,我认为测试是主代码的并行命名空间结构,这为你提供了这些.它还具有以下优点:由于命名空间仍以您的公司名称开头,因此您不应与第三方库发生任何命名冲突