我试图改变System.currentTimeMillis()方法的行为,以便进行测试。我找到了下面的方法,但我不能在代码中使用 aspect 关键字。我真的不明白如何使用这个方法。有什么建议吗?
public aspect CurrentTimeInMillisMethodCallChanger {
long around():
call(public static native long java.lang.System.currentTimeMillis())
&& within(user.code.base.pckg.*) {
return 0; // provide your own implementation returning a long
}
}
请看 相关回答 含有上述代码的源头,以了解更多细节。
不要使用。不要使用 System.currentTimeMillis()
在你的代码中,如果你需要用特定的时间进行测试,请使用 Clock
来代替。
这个抽象的主要目的是允许在需要的时候插入备用时钟。应用程序使用一个对象来获取当前时间,而不是静态方法。这可以简化测试。