• 로그인 함 해보끄나?

  • Sarangnamu.net June 17, 2003
    Home Login Profile Study Open Project Q&A Google Code
    dagger + OkHttp3IdlingResource
    Last Modify : 31 July, 2019(09:55)
    개인적으로 dagger 를 이용중에 androidTest 에서 OkHttp3IdlingResource 를 적용해야할 상황이 되어 잠시 뒤적 뒤적 거리곤 내린 결론 dagger 에서 okhttp client 는 @Singleton 으로 설정해둔 것을 전제로 MainActivity 에 okhttpclient 를 @inject 하고 이를 androidTest 에서 가져다가 OkHttp3IdlingResource create 하면 되지 않을까 싶었는데 일단 된다. 소스로 보자면 먼저 MainActivity 에는 아래와 같이 선언해주고 class MainActivity : BaseDaggerActivity<MainActivityBinding, MainViewModel>() { // .. //////////////////////////////////////////////////////////////////////////////////// // // TEST // //////////////////////////////////////////////////////////////////////////////////// // https://github.com/chiuki/espresso-samples/tree/master/idling-resource-okhttp @VisibleForTesting @Inject lateinit var okhttp: OkHttpClient } 네트워킹 작업이 필요한 테스트 클래스에서 아래와 같이 넣어주었더니 잘 작동하긴 했는데 요즘 내 노트북이 살짝 이상한지라.. =_ = 내일 다시 돌려보고 검토 해봐야할 듯 자꾸 되던게 안되고... ;ㅁ; 디렉토리를 복사하고 수정했는데 원래 자리가 수정되었다던지.. 이런 기묘한 일이 털썩. OTL @RunWith(AndroidJUnit4::class) class SearchTest { private var mIdlingResource: IdlingResource? = null @Before fun registerIdlingResource() { val activityScenario = ActivityScenario.launch(MainActivity::class.java) activityScenario.onActivity { activity -> mIdlingResource = OkHttp3IdlingResource.create("okhttp", activity.okhttp) } } @Test fun searchFragmentTest() { mIdlingResource?.let { IdlingRegistry.getInstance().register(it) } searchIcon().perform(click()) dibsIcon(0).perform(click()) dibsIcon(1).perform(click()) mIdlingResource?.let { IdlingRegistry.getInstance().unregister(it) } // .... } // .... }

    Comment


    입력하3 1591028039



    Locations of visitors to this page