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

Java单元测试,目录布局

祝高阳
2023-03-14
问题内容

在为Java代码构建一套单元测试时,是否有关于将测试代码与源代码放置在何处的约定?

例如,如果我有一个/java包含一堆.java源文件的目录,那么最好将测试用例/java本身放在其中或使用类似的内容/java/test

如果首选后者,那么在包之外无法使用类的private / protected成员时,如何测试代码的内部?


问题答案:

您可以将测试与原始类放在同一包中,即使源代码位于其自己的目录根目录下:

PROJECT_ROOT
    +--- src/
    +----test/

您可以com.foo.MyClass在下声明一个类,srccom.foo.MyClassTest在下声明其测试test

至于访问私有成员,您可以使用 反射
来调用方法(通过来更改方法的可访问性Class.getDeclaredMethod.setAccessible),也可以使用诸如testng /
junit5之类的方法在源代码本身上进行一些注释驱动的测试(我个人认为这是一个馊主意)。

为什么不检查一些项目java.net以了解它们是如何组织的,例如
swinglabs

(恐怕SVN存储库非常慢)?



 类似资料:
  • 我有创建目录并向其中传输文件的代码。我想对它进行单元测试。但问题是,当我运行单元测试时,这些目录是创建的,但我不希望这样。我希望代码仅在运行生产环境时创建这些目录。我在google上搜索过这个,但所有的搜索结果都表明是JUnit类临时文件夹。但这不是我想要的。我没有在测试用例中创建目录。我只是在测试创建它们的代码。所以我不确定TemporaryFolder类如何帮助我实现这一点。假设我有如下代码

  • 我试图讨论下面SonarQube通过代码覆盖的if条件。SonarQube说2个条件中的1个都被覆盖了。如果有人能帮我把这两件事都盖上,我将不胜感激。 我已经声明了变量,并拥有了setter和getter。 下面是我要介绍的代码: 下面是测试2个条件中的1个条件的代码:

  • 问题内容: 我想知道什么是对Servlet进行单元测试的最佳方法。 只要测试内部方法不引用servlet上下文,就不会有问题,但是测试doGet / doPost方法以及引用上下文或使用会话参数的内部方法又如何呢? 有没有一种方法可以简单地使用经典工具(例如JUnit或最好是TestNG)来做到这一点?我是否需要嵌入tomcat服务器或类似的东西? 问题答案: 尝试使用HttpUnit,尽管您最终

  • Android Studio 1.1 添加了单元测试支持,详细请看 Unit testing support。本章的其余部分描述的是 “instrumentation tests”。利用 Instrumentation 测试框架可以构建独立的测试 APK 并运行在真实设备(或模拟器)中进行测试。

  • 英文原文:http://emberjs.com/guides/testing/unit/ 单元测试用于测试代码的一个小片段,确保其功能正常。与集成测试不同,单元测试被限定在一个范围内,并且不需要Ember应用运行。 全局 vs 模块 过去如果没有作为一个全局变量加载整个Ember应用,要对应用进行测试非常困难。通过使用模块(CommonJS,AMD等)来编写应用,可以只加载被测试的部分,而不用将其