Test First public class RestGitHubDataSourceTest { private RestGitHubDataSource dataSource; @Before public void setUp() throws Exception { dataSource = new RestGitHubDataSource(); } @Test public void listRepos() throws Exception { // implement here! } }
Test First assertThat(repos).isNotNull().isNotEmpty(); Repo repo = repos.get(0); assertThat(repo).isNotNull(); assertThat(repo.getFullName()).isNotBlank(); assertThat(repo.getId()).isGreaterThanOrEqualTo(0); assertThat(repo.getOwner()).isNotNull(); You can confirm the specs BEFORE you implement
MockWebServer @Override public MockResponse dispatch(RecordedRequest request) throws InterruptedException { if (request == null || request.getPath() == null) { return new MockResponse().setResponseCode(400); } if (request.getPath().matches("/users/.+/repos")) { return new MockResponse() .setBody(readJsonFromResources("users_repos.json")) .setResponseCode(200); } return new MockResponse().setResponseCode(404); } Talk about this later