ServiceTestCase <T> .getService?</T>

时间:2010-02-19 22:20:23

标签: java android servicetestcase

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

由于我是Junit的新手,我无法弄清楚如何使用ServiceTestCase类。

我无法弄明白如何使getService()方法正常工作。它永远让我无效。所以我决定通过startService启动它。这是行不通的。

你能帮我吗?

由于

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

接受的答案不再适用。

  

ActivityInstrumentationTestCase2或ServiceTestCase等测试用例   不赞成使用ActivityTestRule或ServiceTestRule。

ATSL link

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