首页 > 解决方案 > Java - 查找仅在测试中使用的方法(未在源代码中使用)

问题描述

未使用的方法对未使用的方法有警告,可以删除,例如在 Eclipse 中

MyClass 类型的方法 myMethod() 从未在本地使用

但有时你用它的单元测试编写代码,然后代码在生产中没有使用(或删除),但方法仍然(仅)用于单元测试

我们如何才能找到实际代码中没有使用的这些未使用的方法(仅测试代码)

例如 DAO 方法:

public interface TransactionDao {

   public boolean updateTrasaction(int id);
}

@Repository
public class TransactionDaoImpl implements TransactionDao {

    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Override
    public boolean updateTrasaction(int id) {
        return (jdbcTemplate.update(... )>0);
    }
}

仅用于测试:

@Test   
public void testUpdateTrasaction() {
    Assert.assertEquals(transactionDao.updateTrasaction(1234), true);
}

我知道静态分析工具和 Halting Problem,但是,是否有针对此特定要求的解决方案?

标签: javaeclipsestatic-analysisunused-functions

解决方案


在我看来,最简单的解决方案是首先从您的项目中删除或排除测试包,然后使用一些工具来查找所有未使用的方法,或者更新未使用/不必要代码的 Java 编译器错误/警告设置以获取一些错误/构建后会为您发出警告。

我找不到任何未使用的方法查找工具,您可以在其中从某些包中排除某些用法。如果有的话,我仍然建议使用编译器执行上述步骤,因为我宁愿在我的 IDE 上依赖更少的工具,如果工具对生产力的影响很小。


推荐阅读