私はmavenプロジェクトjavaruntimeと、プロジェクトandroidruntimeに依存するmavenプロジェクトを持っていjavaruntimeます。各プロジェクトには、いくつかのクラスをインターフェイスにバインドする Guice-Module があります。
には、コンストラクター注入によって取得javaruntimeするインターフェイスIElementFactoryとクラスがあります。CIElementFactory
public class C {
    @Inject
    public C(IElementFactory factory, ...(other interfaces)...) {...}
    // ...
}
の具体的な実装IElementFactoryはandroidruntimeプロジェクト内にあり、 と呼ばれAndroidElementFactoryます。他のインターフェイスのすべての実装は、javaruntime.
には、を知らないため、javaruntimeを使用する必要がある JUnit テストがあります。MockElementFactoryandroidruntime
モジュール内でのみにバインドするIElementFactroryと、モジュール/プロジェクト内のそのインターフェイスに実装がバインドされていないため、テストはもちろん失敗します。AndroidElementFactoryandroidruntimejavaruntime
MockElementFactoryその後、javaruntimeモジュールにバインドすると、テストは問題ありませんandroidruntimeが、IElementFactory が既にバインドされており、バインドMockElementFactoryをオーバーライドすることは不適切であり、Guice では推奨されないため、コンパイルできません。
しかし、モックがテストに使用され、アンドロイドプロジェクトで正しい実装をバインドできるようにするにはどうすればよいですか?