当前位置: 首页 > 知识库问答 >
问题:

使用forName通过main检索测试模块中的类

华甫
2023-03-14

在我的主模块中,我有一些使用forName()的代码。在JUnit测试中,我创建了一个虚拟类,我试图从主模块中检索这个类。

public class TestClass {
    public static class DummyClass implements OtherClass { ... }

@Test
void testCase() {
    ParserHandler parserHandler = new ParserHandler();
    String fullClassName = DummyEntity.class.getCanonicalName();

    // fullClassName is used in the following method which uses forName()
    parserHandler.run(fullClassName);
}

每当我尝试此功能时,我都会得到:

java.lang.ClassNotFoundException: com.x.y.TestClass.DummyEntity

我该如何解决这个问题?

共有1个答案

师野
2023-03-14

规范名称对于良好的格式非常有用,但这不是您想要的。您应该改用Class#getName

String fullClassName = DummyEntity.class.getName();
 类似资料:
  • 问题内容: 我有一个在。 当我尝试测试通过jar文件加载此文件的类时,测试失败,因为它无法在路径()中找到该文件。我通过测试得到的路径是: 但是该文件不存在吗? 问题答案: 从文件将可在主程序运行时类路径,而无论是从文件,并会在试运行期间可在classpath。 一种检索驻留在类路径上的文件的方法是: ..的类型取决于文件的内容。您还可以将文件作为InputStream获取:

  • 我有一个在kotlin的‘基地’项目配置与gradle DSL。在基我有模块'app'和模块'library'。模块应用程序使用模块库。我想从模块应用程序的测试(准确地说是库的testUtils包)访问模块库的测试。 我还检查了代码所在的问题: 我需要在库的源代码中添加,这样在应用程序的测试中,我就可以使用库的测试包,而在应用程序的源代码中,我就不能使用库的测试了。 谢谢你。

  • 我有一个类似这样的项目结构: -应用 --模块 2 //库模块 --模块3 //库模块 我正在为我的多模块Android项目编写仪器测试用例,其中包含jaco代码覆盖范围。如果我从“app”模块执行检测测试用例,则仅为“app”模块类生成代码覆盖率。 因此,为了获得“模块2”的代码覆盖率 当我在非应用程序模块中执行插装测试用例,无法启动主活动,插装期间应用程序未启动,测试用例失败时,会出现问题。

  • 我无法使用ArchUnit制定以下测试: 我想确保某个包中的所有类只访问应用程序基包之外或某个子包内的类(“或”而不是“xor”)。 我得到的是: 问题是,或条件应该在onlyAccessClassesthat()中。如果一个类同时具有两种类型的访问权限,上述公式将失败,我希望这两种类型都有效。 我怎样才能实现我想要的?谢谢你在这方面的任何帮助...

  • 我正在将产品代码中的java版本从Java8升级到Java11。 由于使用了第三方库,如flume,zookeeper等,我必须在应用程序java start命令中添加以下JDK模块配置。

  • 2.6. 测试模块 所有的 Python 模块都是对象并且有几个有用的属性。 您可以使用这些属性方便地测试您所书写的模块。 下面是一个使用 if __name__ 的技巧。 if __name__ == "__main__": 在继续学习新东西之前, 有几点重要的观察结果。 首先, if 表达式无需使用圆括号括起来。 其次, if 语句以冒号结束, 随后跟随的是 缩进代码。 与 C 一样, Py