2012-06-12 1 views
0

У меня есть проект Android, который содержит две исходные папки src и test. В тесте у меня есть свои тестовые классы и некоторые макеты. Я использую инъекцию зависимости RoboGuice для Android в каком-то классе, для которого я написал тесты.Ошибка теста Maven RoboGuice [Нет привязки к «классу»)

Тесты отлично работают в Eclipse на эмуляторе, но не работают с чистой установкой maven.

No implementation for com.Store<com.MessageEvent> was bound. 

Испытания сбой при установке при использовании форсунки.

mm = Guice.createInjector(new TestModule()).getInstance(MM.class); 

А вот мой обязательный модуль:

public class TestModule implements Module{ 
    @Override 
    public void configure(com.google.inject.Binder binder) { 
     binder.bind(Context.class).toInstance(getContext()); 
     binder.bind(Scheduler.class).to(MockScheduler.class); 
     binder.bind(EventManager.class).to(MockEventManager.class); 
     binder.bind(new TypeLiteral<Store<Message>>(){}).to(new TypeLiteral<JsonStore<Message>>(){}); 
     binder.bind(new TypeLiteral<Store<MessageEvent>>(){}).to(new TypeLiteral<JsonStore<MessageEvent>>(){}); 
    } 

    @Provides 
    JsonStore<MessageEvent> provideMessageEventJsonStore(Context context){ 
     return new JsonStore<MessageEvent>(context, "message_events_test.json", MessageEvent.class); 
    } 

    @Provides 
    JsonStore<Message> provideMessageJsonStore(Context context){ 
     return new JsonStore<Message>(context, "message_manager_test.json", Message.class); 
    } 
} 

Почему бы исключение будет брошено во время тестирования в Maven, но не в Eclipse?

+0

Я как-то исправил свою проблему, хотя я не уверен, почему она работает. Я извлек интерфейс EvenManager и привязал интерфейс к макету. Затем я переместил свой макетный пакет - который находился под моей исходной папкой тестов - в моей исходной папке src. И теперь maven отлично работает. – Lumbi

ответ

0

«Никакая реализация не была связана» означает, что вам нужно добавить строку для этого особого класса в файл вашего модуля.

+0

не то, что я делаю? 'binder.bind (новый TypeLiteral >() {}). To (новый TypeLiteral >() {});' – Lumbi

+0

Какую версию Roboguice вы используете? – Christine

+0

' org.roboguice roboguice 2,0 ' – Lumbi