通过反射检查局部变量的值是否发生变化。
在使用反射来访问局部变量的状态时是不允许的。实例变量和静态变量是可以的,但是局部变量不行。
另外,反射也不允许你为任何类型的变量附加触发器。这种情况需要对字节码进行修改。然而,单元测试并不需要触发器。只需要在之前和之后检查值即可。
我认为你真正的问题在于你的类没有被设计成易于进行单元测试。首先,你有一个静态方法,它们很难进行“mock”。其次,你试图测试的逻辑是嵌入在一个方法内部的。如果(例如)temp是一个实例变量,或者在// Some implementation ...中的代码是一个可以mock的方法,那么就会容易得多。
顺便说一句,你在这个上下文中使用“private”这个术语是具有误导性的。大多数Java程序员会将“private”解释为具有private修饰符的静态或实例变量。但是你的示例中,temp被声明为局部变量,局部变量不允许使用private修饰符。