groovy
implementation 'org.robolectric:robolectric:4.3.1'
implementation 'com.google.inject:guice:4.2.3'
implementation 'org.roboguice:roboguice:4.3.1'
public interface UserDao {
User getUserById(int id);
}
public class UserDaoImpl implements UserDao {
@Override
public User getUserById(int id) {
return null;
}
}
public class UserService {
private UserDao userDao;
@Inject
public UserService(UserDao userDao) {
this.userDao = userDao;
}
public User getUserById(int id) {
return userDao.getUserById(id);
}
}
public class MyApp extends RoboApplication {
@Override
protected void configure() {
bind(UserDao.class).to(UserDaoImpl.class);
}
}
<application
android:name=".MyApp">
...
</application>
public class MainActivity extends RoboActivity {
@Inject
private UserService userService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
User user = userService.getUserById(123);
}
}