首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ServiceTestCase没有启动我的服务

ServiceTestCase没有启动我的服务
EN

Stack Overflow用户
提问于 2012-01-20 15:51:56
回答 1查看 893关注 0票数 0

我正试图为我的安卓应用程序编写一些JUnit测试。应用程序是一个服务。

为了让ServiceTestCase启动服务,我尝试了几种方法,但都失败了。

但是,当我调试ServiceTestCase时,它将启动服务。我相信这是因为ServiceTestCase正在调用安装程序,并且没有给服务提供足够的时间来启动它,因为它会杀死它.

我不完全确定,这是我第一次在android上使用junit测试。对这件事很陌生。对于我能做些什么来解决这个问题,有什么建议吗?

我在考虑创建一些计时器循环之类的,但这看起来真的很脏。想要个更干净的。

代码语言:javascript
复制
Android Manifest for the service.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="dataservice.server"
    <uses-sdk android:minSdkVersion="10" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <service android:name="dataservice.server.DataServer"  android:process=":remote" android:exported="true" android:enabled="true">
            <intent-filter>
                <action android:name="dataservice.DataService.BIND.1" />
            </intent-filter>
            <intent-filter>
                <action android:name= ".DataServer" />
            </intent-filter>
        </service>
        <receiver android:name="dataservice.server.Receiver">
            <intent-filter>
                <action android:name="android.intent.action.USER_PRESENT"></action>
                <action android:name="android.intent.action.BOOT_COMPLETED"></action>
            </intent-filter>
        </receiver>
    </application>
</manifest>

代码语言:javascript
复制
The ServiceTestCase i am attempting.
public class Publish extends ServiceTestCase<DataServer> {

    private final static String TAG = "Publish Unit Test";
    private Context mSystemContext;

    public Publish() {
        super(DataServer.class);
    }

    public Publish(Class<DataServer> serviceClass) {
        super(serviceClass);
    }

    @Override
    protected void setUp() throws Exception {
        // TODO Auto-generated method stub
        super.setUp();
                // this is where i am attempting to start the service.
                // i have attempted other methods, but none of those worked either.
                startService(new Intent(this.getContext(), DataServer.class));
    }

    public void testPublish() {
      }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-23 18:21:29

我指的是一个不正确的受抚养人项目。一旦解决了这一问题,它就解决了这个问题。因此,如果您有相同的问题,请检查并确保您正在正确引用您的项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8944103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档