Я пишу тест на Service
с помощью Robolectric 2.4:NullPointerException при получении WindowManager от службы при Robolectric
@RunWith(RobolectricTestRunner.class)
public class MyServiceTest {
@Test
public void someTest() {
Robolectric.buildService(MyService.class)
.create()
.get()
.getSystemService(Context.WINDOW_SERVICE);
}
}
Когда getSystemService
называется на Service
, NullPointerException
брошено, как показано ниже:
java.lang.NullPointerException
at android.content.ContextWrapper.getSystemService(ContextWrapper.java:519)
at MyServiceTest.someTest(MyServiceTest.java:10)
Проблема не возникает, когда я звоню getSystemService
по телефону Robolectric.application
или Robolectric
-изложил Activity
; это, по-видимому, проблема, характерная для услуг.
В реальных тестах моя служба пытается получить WindowManager
, используя себя как Context
, поэтому я не могу просто использовать Robolectric.application
, чтобы получить его.
attach() теперь устарел – inder