ServiceTestCase.getService?

发布于 2024-08-22 09:46:08 字数 199 浏览 1 评论 0原文

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

由于我是 Junit 新手,我不知道如何使用 ServiceTestCase 类。

我不知道如何让 getService() 方法工作。它总是返回给我 null 。所以我决定通过startService启动它。它不起作用。

请你帮助我好吗 ?

谢谢

I'm trying to build a valid junit testing suite on android.

Since i'm new to Junit i can't figure out how to use the ServiceTestCase class.

I can't figure it out how to get the getService() method working. it ever returns me null . So i decided to start it via startService. It does not work.

Could you please help me ?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

江挽川 2024-08-29 09:46:08

这就是您测试服务所需的内容

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

This is what you need to test your service

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);
}
}

I've written some articles about Android testing and test driven development that you may find useful, check http://dtmilano.blogspot.com/search/label/test%20driven%20development.

又怨 2024-08-29 09:46:08

接受的答案不再有效。

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

ATSL 链接

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

The accepted answer doesn't work any more.

TestCases like ActivityInstrumentationTestCase2 or ServiceTestCase are
deprecated in favor of ActivityTestRule or ServiceTestRule.

ATSL link

It seems they forgot to update the actual documentation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文