AndroidTest 케이스 및 Mockito (다른 테스트 케이스의 경우 mockito 사용)로 조각을 테스트하고 싶습니다.조각 (안드로이드) 테스트, getActivity() 호출
필자는 다른 방법으로 코딩 된 코드를 사용했지만,이 경우에는 Fragment를 테스트하고 있는데이 호출을 모의하고 싶습니다. final PackageManager packageManager = getActivity(). getPackageManager() ;
여기에 TestClass의 일부와 테스트 할 조각의 일부를 넣겠습니다. 아이디어 나 제안에 미리 감사드립니다.
// Needed because Fragment.mActivity is package-private
package android.support.v4.app;
public class FragmentInjector {
public static void injectActivity(Fragment fragment, FragmentActivity fragmentActivity) {
fragment.mActivity = fragmentActivity;
}
}
는 다른 방법이 fragment.mActivity
의 값을 변경하려면 반사를 사용 수 :
public class MyFragmentTest extends
ActivityInstrumentationTestCase2<MyActivity>{
MyFragment myFragment;
public MyFragmentTest() {
super(MyActivity.class);
}
@Override
public void setUp() throws Exception {
super.setUp();
// This have to be done because of some issues with dexmaker
System.setProperty("dexmaker.dexcache", "/sdcard");
// This have to be done because of the sharedUserId problem
Thread.currentThread().setContextClassLoader(
getClass().getClassLoader());
myFragment = new MyFragment() {
//I can override methods here
};
}
public void testMyMethod() throws Exception {
myFragment.methodThatIWantToTest();
}
}
/************ CLASS THAT I WANT TO TEST *********/
public class MyFragment extends Fragment{
public void methodThatIWantToTest(){
/*..... more lines */
final PackageManager packageManager = getActivity().getPackageManager();
/*..... more lines ...*/
}
}
getActivity() 란 무엇이며 어디에 있습니까? – Saurabh