5

我正在尝试在 android 上构建一个有效的 junit 测试套件。

因为我是 Junit 的新手,所以我不知道如何使用 ServiceTestCase 类。

我不知道如何让 getService() 方法工作。它曾经返回我 null 。所以我决定通过 startService 启动它。这没用。

请你帮助我好吗 ?

谢谢

4

2 回答 2

16

这是您测试服务所需要的

public class MyServiceTests extends ServiceTestCase<MyService> {

private static final String TAG = "MyServiceTests";

public MyServiceTests() {
    super(MyService.class);
}

/**
 * Test basic startup/shutdown of Service
 */
@SmallTest
public void testStartable() {
    Intent startIntent = new Intent();
    startIntent.setClass(getContext(), MyService.class);
    startService(startIntent);
    assertNotNull(getService());
}

/**
 * Test binding to service
 */
@MediumTest
public void testBindable() {
    Intent startIntent = new Intent();
    startIntent.setClass(getContext(), MyService.class);
    IBinder service = bindService(startIntent);
    assertNotNull(service);
}
}

我写了一些关于 Android 测试和测试驱动开发的文章,您可能会发现它们很有用,请查看 http://dtmilano.blogspot.com/search/label/test%20driven%20development

于 2010-02-19T23:53:55.010 回答
0

接受的答案不再起作用。

像 ActivityInstrumentationTestCase2 或 ServiceTestCase 这样的测试用例已被弃用,取而代之的是 ActivityTestRule 或 ServiceTestRule。

ATSL 链接

他们似乎忘记更新实际文档。

于 2016-06-03T22:11:35.303 回答