서비스 용 단위 테스트를 작성하려면 Mockito를 서비스 동작 조롱에 사용할 수 있습니다. 실제 장치에서 서비스를 테스트하려면 서비스와 연결할 수있는 방법입니다.
@RunWith(AndroidJUnit4.class)
public classRemoteProductServiceTest {
@Rule
public final ServiceTestRule mServiceRule = new ServiceTestRule();
@Test
public void testWithStartedService() throws TimeoutException {
mServiceRule.startService(
new Intent(InstrumentationRegistry.getTargetContext(), ProductService.class));
//do something
}
@Test
public void testWithBoundService() throws TimeoutException, RemoteException {
IBinder binder = mServiceRule.bindService(
new Intent(InstrumentationRegistry.getTargetContext(), ProductService.class));
IRemoteProductService iRemoteProductService = IRemoteProductService.Stub.asInterface(binder);
assertNotNull(iRemoteProductService);
iRemoteProductService.addProduct("tanvi", 12, 12.2f);
assertEquals(iRemoteProductService.getProduct("tanvi").getQuantity(), 12);
}
}
링크가 깨졌습니다. – PunDefeated
원격 서비스 또는 원격 Android 서비스와 상호 작용하는 작은 응용 프로그램을 테스트하고 있습니까? 앱을 테스트하는 중이라면 인터페이스로 코딩하는 것으로 시작합니다. 원격 서비스에 대한 모든 호출은 인터페이스로 수행되어야합니다. 작은 응용 프로그램에는 실제로 원격 서비스를 호출하는 인터페이스가 구현되어 있습니다. 테스트 패키지에는 원격 서비스에서 반환 된 정보를 조롱하는 두 번째 구현이 있습니다. 각 테스트는 테스트 패키지 구현에서 사용되는 메모리 데이터에서 일부 백업을 구성 할 수 있습니다. –
나는 안드로이드에서 이런 식으로 일을하지 않았지만 다른 자바 애플리케이션에서 봄을 가지고 있으므로 정확한 해결책이 확실하지 않습니다. –