ich ein anwendungsspezifisches Modul haben die DynamoDBMapper
und eine weitere Klasse Anwendung konfigurieren, die auf diesem Mapper setztMocking Guice erstellte Objekte
public class ProjectAppServiceModule extends AbstractModule {
@Override protected void configure() {
}
@Provides
@Singleton
public AmazonDynamoDB getAmazonDynamoDBClient() {
return AmazonDynamoDBClientBuilder
.standard()
.withCredentials(new EnvironmentVariableCredentialsProvider())
.build();
}
@Provides
@Singleton
public DynamoDBMapper getDynamoDBMapper() {
return new DynamoDBMapper(getAmazonDynamoDBClient());
}
@Provides
@Singleton
public OrdersManager getOrdersManager() {
return new OrdersManager(getDynamoDBMapper());
}
}
Jetzt, möchte ich Unit-Tests und in der Einheit tun Testen möchte ich eine Mocked Objekt OrderManager
bekommen.
Ich versuchte
@Mock
private DynamoDBMapper mockDynamoDBMapper;
Injector injector = createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(DynamoDBMapper.class).toInstance(mockDynamoDBMapper)
bind(OrdersManager.class).toInstance(mockOrdersManager);
}
});
tun und ich habe Fehler, die ich mit null Objekte nicht instanziieren. Was wäre der beste Weg, um dieses Problem zu umgehen? Ich nehme an, dass ich es falsch angehen würde.