希望在一系列新解决方案中包含单元测试。不知道如何构建它们。
不确定它是否真的重要,尽管这些都是.Net C#项目。
我已经阅读了许多类似的答案,例如此Organization of Unit Tests in Visual Studio和此Do you put unit tests in same project or another project?,但似乎没有一个答案可以解决在多个解决方案中共享的项目
鉴于以下2个解决方案的结构,创建单元测试项目的最佳实践是什么。
解决方案#1
解决方案#2
请注意,解决方案之间共享了一些项目。
所以问题是,这些问题的典型方法是什么?
我们会为每个项目创建一个测试项目吗?
或每个解决方案的单个测试项目?
或者两者之间有一些混合,也许是他们自己的解决方案在不同的方法中会想到任何陷阱?
答案 0 :(得分:1)
我一直与项目和单元测试项目一对一完成 任何可以站在自己身上的项目都需要自己测试。否则,您将它与测试项目中的所有其他代码耦合。
为了测试需要多个项目的代码,您可以模拟其他包中的对象,或者您可以遵循明确的继承层次结构。即Web中的测试可以使用Data中的类,但不应该测试Data的功能 您还可以为组合测试创建一个新的测试项目,这在集成测试的场景中通常更有用,您正在测试实时而非生产系统。
在解决方案中,这些文件将分为一个Test文件夹,该文件夹将被分成与项目本身相同的文件夹。即您的Test文件夹将包含Data,Global,Services和Web作为单独的文件夹。
拥有主解决方案也很有用。包含所有项目的一个。通过这种方式,您可以确保对Data的更改不会破坏其他解决方案的Web测试,即使它不会破坏您当前的测试。
如果你真正在做的是创建一些共享库,你应该考虑托管你自己的nuget存储库。这有助于理清共享代码中的版本控制问题。