2015-02-10 104 views
2

在Java中,源代码包和测试包之间有什么区别?给定一个包含几个Java类文件和manifest.mf文件的Java项目......如何识别一个类是属于源包还是测试包?创建它们的意义是什么?源码包和测试包之间有什么区别?

+0

Java本身没有这样的源码包和测试包的概念。您可能指的是构建工具(如Apache Maven)所采用的_conventions_。 – 2015-02-10 04:10:10

+0

我发现Netbeans在从现有源文件中创建Java项目时所作的区分。我无法理解它。 – giffy 2015-02-10 04:16:26

+0

@giffy Netbeans(与其他IDE一样)有很多快捷方式与知道你在哪里放置源代码和测试相关联。例如,创建或运行当前课程的测试很容易。如果你坚持惯例,它将使这些工具更容易使用。 – sprinter 2015-02-10 04:35:56

回答

0

源包包含您的Java类,接口,枚举和注释类型文件。也就是说,任何带有.java扩展名的东西。这个包包含你的应用程序逻辑。

测试包中包含您的Java测试类文件。这些包通常包含您的JUnit测试类文件。

请注意,Java语言规范不要求将Java源文件和其他文件组织到源包和测试包中。这纯粹是大多数开发人员遵循的惯例,并且正如Maven等流行构建工具的评论中所述。

创建它们的意义在于为Java项目提供某种组织。想象一下,您有数百个Java类文件:一些用于您的主要业务逻辑,另一些用于测试等,并将它们全部放在一个目录中。你的应用程序仍然可以编译,但是如果你必须在该目录中找到一些代码,至少可以说是乏味的。在主要的Java项目中,通常有数千个Java文件。如果没有这些文件的组织,开发人员的生产力将受到严重阻碍。

+1

另一个重要的原因是测试类不会被编译到最终的jar或war artefact中。主“src”目录中的类对测试类(甚至大多数情况下甚至是测试框架)都没有可见性,但测试类可以看到主类。 – slipperyseal 2015-02-10 04:44:04

相关问题