当前位置: 首页 > 面试题库 >

是否将JUnit类分成特殊的测试包?

谯翔
2023-03-14
问题内容

我通过阅读学习测试驱动开发的概念工匠的文章(点击
工匠按主题
)在回答中建议我刚才的问题,“学习JUnit和适当的软件工程样品工程”。到目前为止,我喜欢它!

但是现在我想坐下来自己尝试一下。我有一个问题,希望只需要一个简单的答案。

您如何组织JUnit测试类和实际html" target="_blank">代码? 我主要是在谈论包的结构,但是注释的任何其他概念也将有所帮助。

您是否将测试类放在org.myname.project.test。中,将普通代码放在org.myname.project。中?您是否将测试课程放在普通课程的旁边?您是否愿意在类名前面加上Test而不是给它们加上后缀?

我知道这似乎是我不应该担心的事情,但是我是一个非常以组织为中心的人。我 几乎 是那种花费更多时间找出方法来跟踪要完成的事情,而不是实际完成工作的人。

我有一个项目,目前已将其整齐地分成多个程序包,但该项目变得一团糟。我不想尝试重构所有内容并编写测试,而是要重新开始,首先进行所有测试。但是首先我需要知道我的测试要去哪里。

编辑:
我完全忘记了Maven,但似乎大多数人都在使用它!过去我有一个特定的用例,其中Maven完全崩溃了,但是Ant给了我所需的灵活性,所以我最终还是依附于Ant,但是我想也许我只是采用了错误的方法。我想我会再尝试一下Maven,因为听起来好像可以很好地进行测试驱动的开发。


问题答案:

我更喜欢将测试类与它们测试的项目类放在同一包中,但放在不同的物理目录中,例如:

myproject/src/com/foo/Bar.java
myproject/test/com/foo/BarTest.java

在Maven项目中,它看起来像这样:

myproject/src/main/java/com/foo/Bar.java
myproject/src/test/java/com/foo/BarTest.java

最主要的一点是我的测试类可以访问(和测试!)包作用域类和成员。

如上面的html" target="_blank">示例所示,我的测试类具有测试类的名称以及Test后缀。这有助于快速找到它们-
尝试在数百个测试类中进行搜索不是很有趣,每个测试类的名称都以Test… 开头

*受@Ricket评论启发的 *更新
:这样,测试类(通常)会在其测试伙伴之后以项目方式按字母顺序列出的类名显示。(有趣的是,我每天都从中受益,而没有自觉地意识到如何……)

Update2: 许多开发人员(包括我自己)都喜欢Maven,但似乎至少有很多不这样做的人。恕我直言,这对于“主流”
Java项目非常有用(我会将大约90%的项目归入此类……但是其他10%仍然是相当大的少数)。如果可以接受Maven约定,则使用起来很容易;但是,如果没有的话,它会使生活陷入痛苦的挣扎。对于许多在Ant上社交的人来说,Maven似乎很难理解,因为它显然需要非常不同的思维方式。(我自己从未使用过Ant,所以无法将两者进行比较。)可以肯定的是:它使单元(和集成)测试成为过程中自然而一流的一步,这有助于开发人员采用这种基本做法。



 类似资料:
  • 我正在设置Junit测试套件。我知道如何使用运行类中所有测试的标准方法来设置测试套件,例如这里。 是否可以创建一个并且只运行来自几个不同类的某些测试? 如果是,我该怎么做?

  • 我找到了关于如何从Java中启动JUnit 4测试用例的说明,但是还没有找到在JUnit 5测试用例上启动测试的结构。 我尝试的JUnit 4解决方案是这样的:如何从我的java应用程序内部运行JUnit测试? 我一直在尝试让JUnit5中的控制台启动器工作,但它会引发异常。这记录在这里:http://junit.org/junit5/docs/current/user-guide/#runnin

  • 问题内容: 有什么方法可以在JUnit中对测试进行分组,以便我只能运行某些组? 还是可以注释一些测试然后全局禁用它们? 我正在使用 JUnit 4 ,但不能使用TestNG。 编辑: @RunWith和@SuiteClasses很好用。但是是否可以仅在测试类中的某些测试中进行这样的注释?还是我必须注释整个测试课程? 问题答案: 您要在测试类中对测试进行分组还是要对测试类进行分组?我将假设后者。 这

  • 我的build.gradle是这样配置的: 下面是一个简单的测试: 当我执行测试时,我在控制台中看到了这一点: 但测试报告中没有任何内容: 我做错了什么?如何将JUnit 5结果集成到测试报告窗口中? 我正在使用Intellij 2016.2

  • 我已经用java设置了一个cucumber项目,在我的EclipseIDE中,我可以直接运行我的功能文件,测试将完成。然而,当我将它们作为JUnit测试运行时,它们不会运行,在控制台中它们显示为 如果我双击JUnit选项卡中的步骤,我会得到以下消息 “在所选项目中找不到测试类” 我的测试跑步者班是这样的, 我的文件夹结构如下所示 JUnit似乎忽略了我的胶水代码。即使我输入了一个无效的路径,它也不