在Java中,我已经看到了在不同包中的同一项目中进行测试和源代码的做法。但现在有人要求我将Java源代码作为一个不同的项目,并将测试从主项目中取出,并将其作为一个单独的测试项目,如.net,并在项目中提供该源jar的引用。
请参阅以下是我们遵循的一般做法
SRC >>主要>> >> Java的COM >> FOO >> Sample.java
测试>>主要>> >> Java的COM >> FOO >> SampleTest.java
但是现在有人让我创建一个项目
SRC >>主要>> >> Java的COM >> FOO >> Sample.java
作为一个项目然后使测试像Java项目一样将上面的jar引用到您的测试项目中(将该jar添加到库中或在构建文件中添加依赖项)来执行测试用例。
测试>>主要>> >> Java的COM >> FOO >> SampleTest.java
你认为这是一个可行的解决方案吗?
我们应该遵循这样的做法。
由于您提到Java,因此基于Java的项目通常会在同一项目(maven / gradle)中进行Junit测试。您的源代码和测试代码结构如下所示:
src
│
── main
└── java
└── com
└── foo
│ ├──Sample.java
│
│
└── test
└── java
└── com
└── foo
└── SampleTest.java
使用同一项目中的source和junit,您将能够更好地与代码和单元测试相关联。此方法允许测试访问所测试类的所有公共和包可见方法。
这也是标准maven / gradle目录布局的一部分,其中项目相同但文件夹是分开的。
根据需求,可以在单独的项目中存在一组通用的集成或功能测试。
你也可以参考Junit FAQ谈论组织测试。
保持简单,您可以通过将单元测试保持在同一个项目中来开始,并考虑在真正需要时将其分开。