internal object SessionController {
@JvmStatic
fun getRegistrationId(context: Context): String? {
return doGetRegId(context, GRE_KEY)
}
@JvmStatic
fun setRegisterationId(context: Context, regId: String){
if (getRegistrationId(context) != regId) {
doSetRegId(context, regId)
}
}
}
Class Client {
fun register(regId: String) {
val id = SessionController.setRegistrationId(context, redId)
... ...
}
}
测试将要执行以下操作:
@Test
public void test {
Client client = new SessionController();
String testResult = "test_result";
/// does not work
try (MockedStatic<SessionController> sessionCtrlMock = Mockito.mockStatic(SessionController.class)) {
sessionCtrlMock.when(() -> SessionController.getRegistrationId(any(Context.class)))
.thenReturn(testResult);
sessionCtrlMock.when(() -> SessionController.setRegistrationId(any(Context.class)), anyString())
.thenCallRealMethod();
//test
client.register(testResult);
// do verify
... ...
}
///
}