我需要访问JUnit Test的Android上下文.
我尝试过使用MockContext并扩展AndroidTestCase,但每次我收到错误说(存根!)
Fre*_*lin 23
那么使用AndroidTestCase而不是JUnit测试呢?AndroidTestCase将提供一个带有getContext()的Context,可以在需要的地方使用.
从JUnit访问上下文而不扩展的 另一种方法AndroidTestCase是使用Rule启动测试中的活动.规则是为每个测试方法执行的拦截器,将在方法中的任何设置代码之前运行@Before.规则被提出作为替代ActivityInstrumentationTestCase2.
@RunWith(AndroidJUnit4.class)
@SmallTest
public class ConnectivityTest {
@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class);
@Test
public void testIsConnected() throws Exception {
Context context = mActivityRule.getActivity().getBaseContext();
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
boolean connected = cm.getActiveNetworkInfo().isConnectedOrConnecting();
Assert.assertEquals(connected, ConnectionUtils.isConnected(context));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13003 次 |
| 最近记录: |