samedi 18 février 2017

Android Test callback

I am new with Android Testing-Related stuff. I want to test my repository, more specificaly the method getMovie but i don't know how. The assertEquals returns always true. I aThank you guys!

public class MoviesRepositoryTest {

private List<Movie>         MOVIES;
private MoviesRepository    mMoviesRepository;

@Before
public void setupMoviesRepository(){
    MOVIES = Lists.newArrayList(
                    new Movie("1","Title1", "Description1"),
                    new Movie("2","Title2", "Description2"));
    FakeMoviesServiceApiImpl.addMovies(MOVIES);
}

@Test
public void loadMoviesIntoFakeRepository(){
    mMoviesRepository = MoviesRepositories.provideFakeMoviesRepository();
    mMoviesRepository.getMovie("1", movies -> {
        <b>assertEquals("TitleXXXX", movies.getTitle());</b>
    });
}


public interface MoviesRepository {

  interface LoadMoviesCallback<T> {

    void onLoaded(T movies);
  }

  void getMovie(String movieId, LoadMoviesCallback<Movie> callback);

}


public class FakeMoviesServiceApiImpl implements MoviesServiceApi {

  private static final ArrayMap<String, Movie> MOVIES_SERVICE_DATA = new ArrayMap<>();

  @Override
  public void getMovie(@NonNull String movieId, @NonNull MoviesServiceCallback<Movie> callback) {
    callback.onLoaded(MOVIES_SERVICE_DATA.get(movieId));
  }

  @VisibleForTesting
  public static void addMovies(List<Movie> movies) {
    for (Movie movie : movies) {
        MOVIES_SERVICE_DATA.put(movie.getId(), movie);
    }
  }
}

More Info:

///////////////////// Tests /////////////////////
// Unit
testCompile "junit:junit:$junitVersion"
testCompile "org.mockito:mockito-core:$mockitoVersion"
// Android Testing Support Library's runner and rules
androidTestCompile "com.android.support.test:runner:$runnerVersion"
androidTestCompile "com.android.support.test:rules:$rulesVersion"
// Espresso UI Testing dependencies.
androidTestCompile "com.android.support.test.espresso:espresso-core:$expressoVersion"
// Dependency for androidTestCompile
androidTestCompile "com.android.support:support-annotations:$supportVersion"


ext {
    supportVersion          = "25.1.1"
    stethoVersion           = "1.4.2"
    constraintLayoutVersion = "1.0.0-beta5"
    guavaVersion            = "21.0"
    junitVersion            = "4.4"
    mockitoVersion          = "2.7.9"
    expressoVersion         = "2.2.2"
    runnerVersion           = "0.5"
    rulesVersion            = "0.5"
    butterKnifeVersion      = "8.5.1"
    glideVersion            = "3.7.0"
    retrofitVersion         = "2.1.0"
}

Aucun commentaire:

Enregistrer un commentaire