我想做一個JUnit測試以確保某些類不使用特定的一組方法(來自其他類)。示例在Java中的方法內調用Get方法
class MyClass
{
void myMethod()
{
otherClass.otherClassStaticMethod();
}
}
class myTest
{
void test()
{
assertFalse(CalledMethods.getMethodsCalledBy("myClass.myMethod").Contains("otherClass.otherClassStaticMethod"));
}
}
在此測試中,我想確保myMethod不調用otherClassStaticMethod。如何在編譯時查找在方法內部調用的方法(忽略使用反射調用的方法)?我想過一個.java解析器,你有什麼建議嗎?
檢查方法調用通常用於確保在單元測試期間調用或不調用底層的某些方法。對於這個puupose你可以使用Mockito,EasyMock等。如果你想強制程序員不使用某個API,你應該考慮使用靜態代碼分析工具,如PMD或CheckStyle。 – 2012-07-30 13:11:54