【发布时间】:2013-11-26 01:07:39
【问题描述】:
假设我有一个类Foo 和一个方法evilMethod:
class Foo {
public void evilMethod() {
// do sth
}
}
有没有办法编写一个测试,只要在类路径上的任何类中调用此方法就会失败?我的意思是,不是在运行时调用该方法,而是在代码中声明它时。
例如,在类路径中的任何类中存在此代码都会导致测试失败:
if(false) {
Foo f = new Foo();
f.evilMethod(); // test fails because of that
}
我想要实现的目标:我想注释不应该在某个项目中调用的方法,但需要放置在那里以便在另一个项目中使用,然后编写一个测试以确保不会在任何地方调用注释的方法确实。
【问题讨论】:
-
反射方法意味着运行时解决方案,这是您明确排除的。我理解这一点的方式是,您正在寻找一个静态代码分析器来查找带注释的方法的调用。对吗?
-
是的,你是对的。但是您可以使用反射获得基于注释或任何其他标准的所有方法或类,所以我想也许您可以对方法调用做类似的事情。
-
您希望在编译期间还是在运行测试时进行此分析?
-
运行测试时我在想。
标签: java testing reflection