我不太确定这个问题是否与此相关;也许它太高了。
假设我有一个接口Foo
,它由另外两个具体的类FooProduction
和FooTest
实现。第一个是生产代码,另一个是测试实现。现在我想打包一切,但我不确定哪个更合适。移动测试包中的FooTest
类(我保留所有测试)或将Foo
,FooProduction
和FooTest
保留在另一个包中,让我们说foo包?
答案 0 :(得分:3)
我会说,确保FooTest
永远不会找到它在生产机器上的方式将是最高优先级。因此,我的投票将是在Test
/ Production
边界划分事物。
我不知道你实际使用的语言是什么,但在Java世界中,Maven软件管理系统非常受欢迎且普遍受到好评,并且它在所谓的之间做出了极为强烈的区分。 “main
”和“test
”代码,资源文件和依赖项。实际上,在他们的文档中,他们表明这是一个"testing best practice"。
关于在哪里放置接口Foo
及其FooProduction
实现,这实际上是个人(或网站)偏好的问题。我喜欢有一个包含所有域模型对象的包,例如。
答案 1 :(得分:1)
FooTest
应该位于与生产代码不同的包中
IFoo
和FooProduction
是否应该放在同一个包或两个单独的包上取决于FooProduction
的可变性(您将来要查找的实现数量)