小编sva*_*tom的帖子

RoboGuice单元测试注入app模块而不是测试模块

我正在尝试使用RoboGuice 2.0为Android服务编写JUnit测试.我有一个测试模块,它将注入的依赖项绑定到Mockito模拟对象.但是,当我运行测试时,我的app模块的实际实现会被注入.以下是一些相关代码:

MainApplication.java:

public class MainApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        RoboGuice.setBaseApplicationInjector(this, RoboGuice.DEFAULT_STAGE,
            RoboGuice.newDefaultRoboModule(this), new MainModule());
        startService(new Intent(this, NotificationService.class));
    }
}
Run Code Online (Sandbox Code Playgroud)

MainModule.java:

public class MainModule extends AbstractModule {
    @Override
    protected void configure() {
        bind(IFooManager.class).to(FooManagerImpl.class).in(Scopes.SINGLETON);
    }
}
Run Code Online (Sandbox Code Playgroud)

NotificationService.java:

public class NotificationService extends RoboService {
    @Inject
    private NotificationManager notificationManager;
    @Inject
    private SharedPreferences prefs;
    @Inject
    private IFooManager fooManager;
    private IFooListener listener = new FooListener();

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        super.onCreate(); …
Run Code Online (Sandbox Code Playgroud)

junit android mockito android-service roboguice

5
推荐指数
1
解决办法
1261
查看次数

标签 统计

android ×1

android-service ×1

junit ×1

mockito ×1

roboguice ×1