我正在尝试在android上构建一个有效的junit测试套件。
由于我是Junit的新手,我无法弄清楚如何使用ServiceTestCase类。
我无法弄明白如何使getService()方法正常工作。它永远让我无效。所以我决定通过startService启动它。这是行不通的。
你能帮我吗?
由于
答案 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。
似乎他们忘了更新实际文档。