에스프레소를 사용하여 ContentProvider
을 사용하여 검색된 데이터를 표시하는 Activity
을 테스트하고 있습니다.Espresso를 사용하여 Android 활동을 테스트 할 때 MockContentResolver를 어떻게 사용합니까?
MockContentProvider과 MockContentResolver을 사용하여 콘텐츠 제공 업체를 조롱하고 싶습니다. 그러나 활동 방법을 만드는 방법을 모르겠습니다. getContentResolver()
모의 해결 프로그램을 반환합니다.
(I 테스트를 실행하기 전에 데이터를 삽입 할 수 있지만, 대신 모의 제공자 사용할 수 있다면 내가 알고 싶습니다)
가 업데이트 : 난 아직도 만들 수 없습니다 작동을, 그래서 더 명확하게하려고 몇 가지 코드가 포함되어 있습니다.
MyActivity.java
MyActivity extends AppCompatActivity {
...
private delete(String id) {
// The method getContentResolver() is what I want to mock when testing
getContentResolver().delete(
Contract.Item.makeUriForItem(id), null, null);
}
...
}
내가 getContentResolver()
가 안드로이드에 의해 구현되고, 내가 주입 @Inject
를 사용할 수 없기 때문에 제안이 일을 Dagger2를 사용하여 만들 수 없습니다
@RunWith(AndroidJUnit4.class)
@LargeTest
public class StockChartDetailsActivityTests {
@Rule
public ActivityTestRule<MyActivity> myActivityTestRule = new ActivityTestRule<MyActivity>(
MainActivity.class);
@Test
public void test() {
}
}
MyActivityTests.java 내 ContentResolver
.
나는 다른 전략을 사용할 수
- 삽입 데이터를 데이터베이스에 테스트하기 전에.
- 에는 비즈니스 로직 레이어와 같은 다른 레이어가 있고이 레이어의 클래스에
getContentResolver()
으로 통화를 이동 한 다음 비즈니스 로직 클래스를 삽입 (모의) 할 수 있습니다.
그러나 이러한 전략을 사용하기 전에 MockContentResolver
을 사용할 수 있는지 알고 싶습니다.
에 대해 살펴 here 수 있습니다. –