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

为什么我不能在一个文件中同时定义测试和测试类?

公冶弘壮
2023-03-14
public class Main {

    public static void main(String[] args) {
        TestClass testClass = new TestClass();
    }
}

class TestClass {}
class Testclass {}

以下是输出信息:

线程“main”java.lang.noClassDeffounder:top/example/study/testclass(名称错误:top/example/study/testclass)在java.base/java.lang.classloader.defineclass1(本机方法)在java.base/java.lang.classloader.defineclass(classloader.java:1009)在java.base/java.lang.classloader.defineclass(Secureclassloader.java:174)在java.base/jdk.internal.loader.builtinclassloader.defineclass(Builtinclassloader.java:801)在ULL(BuiltInclassLoader.java:699)在java.base/jdk.internal.loader.BuiltInclassLoader.LoadClassorNULL(BuiltInclassLoader.java:622)在java.base/jdk.internal.loader.BuiltInclassLoader.LoadClass(BuiltInclassLoader.java:580)在java.base/jdk.internal.loader.ClassLoader.java:580)在java.base/jdk.internal.loader.ClassLoader.$AppClassLoader.LoadClass(ClassLoader.java:190)在java.base/java.lang.ClassLoader.LoadClass

我了解到java是区分大小写的,那么为什么会出现这种情况呢?多谢了。

共有1个答案

穆英飙
2023-03-14

我猜你使用的是Windows,或者至少是不区分大小写的文件系统。

Java的编译器使用类的名称生成.class文件。TestClass.java=>TestClass.classTestClass.java=>TestClass.class。但是如果您的文件系统不区分大小写,testclass.classtestclass.class是相同的文件名,其中一个覆盖另一个。

取而代之的是,让名字以不同的方式而不仅仅是大写。

 类似资料:
  • @ptrthomas-我能够在空手道中分别进行API测试和性能测试。但当我试图在同一个框架中合并两者时,它们中的任何一个都停止了工作。 我可以在这里看到的原因空手道核心是空手道朱尼特和空手道阿帕奇的子依赖性。但是他们都安装了不同版本的空手道核心。因此,要么必须排除其中一个。但是无论你把它排除在哪里,它都会停止工作。如果您从空手道-Junit4中排除它,那么API测试将不起作用,如果您从空手道-ap

  • 我正在与: Spring Framework JUnit 分级 我有这两个测试类 null Spring Boot/JUnit,为多个配置文件运行所有单元测试 但是我希望避免通过或使用命令,它通过类保持控件。

  • 我使用Jest框架,并有一个测试套件。我想关闭/跳过我的一个测试。 谷歌文档并没有给我答案。 你知道要查的答案或信息来源吗?

  • 问题内容: 自从启动此项目以来,我一直在使用JUnit,并且一切正常。我有数百个测试,当然,在这里和那里,我都开始了。右键单击根测试文件夹,使用JUnit运行(或调试)。但是从昨天开始,当我这样做时,结果是: 无需开始任何测试。文件夹树中的任何文件夹都是相同的。我仍然可以运行一个测试类,但是我确实需要一个选项来启动它们。如果您有任何想法,请将其放在此处。 这是我尝试运行测试时记录的内容: 问题答案

  • 主类: 测试代码: servlet发送了一个200状态代码,但测试结果显示状态为404 看来MockMvc在spring boot不能用来测试servlet