![](/img/trans.png)
[英]How do I know which method/class is called when I test java GUI in eclipse?
[英]JAVA : know when a method is called
在这里思考一个奇怪的问题。 比如说你在服务器上部署了代码,它执行以下操作:
//GET request called when a URL is hit
public void gETCalled(){
MyClass.invoke();
}
想知道是否可以从外部测试类(部署在同一服务器环境中)知道是否曾经调用invoke()而不修改MyClass?
我正在尝试编写验收测试,并想知道这是否可能(没有触及我的MyClass代码)
在测试用例方面,PowerMock可以拦截静态方法调用。
http://code.google.com/p/powermock/wiki/MockStatic
但是,从服务器端代码,AoP(特别是aspectj)将是您最好的选择。 这样您就不必实际更改任何代码(仅代码方面类),只有当您想要将aspectj weaver添加为javaagent时才能启用它。
方面看起来像这样:
@Aspect
public class TrackMyClassInvoke {
@Before("execution(* MyClass.invoke())")
public void beforeInvoke() {
// do something to track it here
}
}
您需要确保在编织中包含MyClass(我不会进入整个编织过程,因为您可以在aspectj网站上找到所有内容)
我想你可以使用AoP来做到这一点。 我自己没有使用它,但我相信它会让你创建一个日志记录机制,你可以做一些事情,比如调用方法,打印或记录一些语句。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.