You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Eclipse中为已实现类运行JUnit测试?被测类不存在报错如何解决

问题根因

你当前的MyInteger类是定义在HW3.java源文件中的非公有类,Eclipse的JUnit类扫描逻辑默认只会识别独立的public类作为可测试的目标类,因此会提示被测类不存在。

解决步骤
  • 第一步:拆分独立的MyInteger公有类
    在evenodd包下新建MyInteger.java源文件,将原HW3.java中的MyInteger类代码完整剪切到该文件中,给类加上public修饰符,修改后类声明为:

    public class MyInteger {
        // 原有类内部代码保持不变
    }
    

    保存两个文件后执行项目编译,确认没有语法报错。

  • 第二步:重新创建/修改JUnit测试类
    新建JUnit测试类时,在「Class under test」输入栏直接输入全限定类名evenodd.MyInteger,或者点击浏览按钮选择刚刚拆分完成的MyInteger类即可被正确识别。测试类的包声明必须和被测类保持一致,示例测试代码参考:

    package evenodd;
    
    import org.junit.Test;
    import static org.junit.Assert.*;
    
    public class MyIntegerTest {
    
        @Test
        public void testIsEvenInstance() {
            MyInteger testEven = new MyInteger(20);
            assertTrue(testEven.isEven());
            MyInteger testOdd = new MyInteger(17);
            assertFalse(testOdd.isEven());
        }
    
        @Test
        public void testEquals() {
            MyInteger int1 = new MyInteger(5);
            MyInteger int2 = new MyInteger(5);
            assertTrue(int1.equals(int2));
            assertTrue(int1.equals(5));
        }
    }
    
  • 第三步:排查编译路径配置(若前两步未解决)
    右键项目→选择「Properties」→进入「Java Build Path」设置页:

    • 确认业务代码源文件夹和测试代码源文件夹都被正确添加到Source标签下
    • 确认没有配置排除规则过滤evenodd包的编译
    • 确认项目的JDK版本和JUnit版本兼容,没有类加载冲突。

内容的提问来源于stack exchange,提问作者Jack Beyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:45:10