小编RHL*_*Lab的帖子

Guice:测试和子项目中的不同绑定

我有一个maven项目javaruntime和一个androidruntime依赖于javaruntime项目的maven 项目.每个项目都有一个Guice-Module将一些类绑定到Interfaces.

javaruntime接口IElementFactory和类C中获取IElementFactory构造函数注入:

public class C {
    @Inject
    public C(IElementFactory factory, ...(other interfaces)...) {...}
    // ...
}
Run Code Online (Sandbox Code Playgroud)

该项目的具体实施IElementFactory是在androidruntime项目中并被调用AndroidElementFactory.其他接口的所有实现都在javaruntime.

javaruntime我有JUnit测试应该使用一个MockElementFactory因为它不知道androidruntime.

如果我将模块绑定IElementFactroryAndroidElementFactory唯一androidruntime模块,那么测试当然会失败,因为javaruntime模块/项目中没有为该接口绑定任何实现.

如果我然后绑定MockElementFactoryjavaruntime模块测试都很好,但我不能编译androidruntime,因为IElementFactory已经被绑定到MockElementFactory并覆盖有约束力较差,在吉斯不reommended.

但是我如何才能实现Mock用于测试,而在android-project中仍然可以绑定正确的实现?

java guice maven

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

标签 统计

guice ×1

java ×1

maven ×1