У меня есть класс, написанный кем-то, который предоставляет его свойства как общедоступные без геттеров/сеттеров.Mocking class properties Java/Android
Теперь я хочу издеваться над этим классом, используя флэш-память Android Mocking. Я не хочу изменять class_under_test (если это необходимо). Я знаю его плохую практику программирования, но есть ли способ издеваться над такими свойствами, как
AndroidMock.expect (myMockClass.name) .andReturn ('Scott');
я получаю исключение, когда я бегу TestCase:
java.lang.IllegalStateException: no last call on a mock available
at org.easymock.EasyMock.getControlForLastCall(EasyMock.java:174)
at org.easymock.EasyMock.expect(EasyMock.java:156)
at com.google.android.testing.mocking.AndroidMock.expect(AndroidMock.java:264)
at com.akshat.test.TestPerson.testGetName(TestPerson.java:41)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)
«У меня есть класс, написанный кем-то, который предоставляет его свойства как общедоступные без геттеров/сеттеров». Я думаю, вы имеете в виду поля, а не свойства. Свойство обычно представляет собой комбинацию поля, получателя и сеттера. Google «свойство поля java» (без кавычек) для более подробной информации. – apollodude217