add some test for github repo downloader
parent
800f66c4cc
commit
7586e3d75c
2
pom.xml
2
pom.xml
|
@ -136,7 +136,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jsoup</groupId>
|
<groupId>org.jsoup</groupId>
|
||||||
<artifactId>jsoup</artifactId>
|
<artifactId>jsoup</artifactId>
|
||||||
<version>1.7.2</version>
|
<version>1.8.3</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
package us.codecraft.webmagic.downloader;
|
||||||
|
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import us.codecraft.webmagic.Page;
|
||||||
|
import us.codecraft.webmagic.Request;
|
||||||
|
import us.codecraft.webmagic.Task;
|
||||||
|
import us.codecraft.webmagic.selector.PlainText;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author code4crafter@gmail.com
|
||||||
|
*/
|
||||||
|
public class MockGithubDownloader implements Downloader {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Page download(Request request, Task task) {
|
||||||
|
Page page = new Page();
|
||||||
|
InputStream resourceAsStream = this.getClass().getResourceAsStream("/html/mock-github.html");
|
||||||
|
try {
|
||||||
|
page.setRawText(IOUtils.toString(resourceAsStream));
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
page.setRequest(new Request("https://github.com/code4craft/webmagic"));
|
||||||
|
page.setUrl(new PlainText("https://github.com/code4craft/webmagic"));
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setThread(int threadNum) {
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
package us.codecraft.webmagic.example;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import us.codecraft.webmagic.ResultItems;
|
||||||
|
import us.codecraft.webmagic.Spider;
|
||||||
|
import us.codecraft.webmagic.Task;
|
||||||
|
import us.codecraft.webmagic.downloader.MockGithubDownloader;
|
||||||
|
import us.codecraft.webmagic.pipeline.Pipeline;
|
||||||
|
import us.codecraft.webmagic.processor.example.GithubRepoPageProcessor;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author code4crafter@gmail.com
|
||||||
|
* Date: 16/1/19
|
||||||
|
* Time: 上午7:27
|
||||||
|
*/
|
||||||
|
public class GithubRepoPageProcessorTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_github() throws Exception {
|
||||||
|
Spider.create(new GithubRepoPageProcessor()).addPipeline(new Pipeline() {
|
||||||
|
@Override
|
||||||
|
public void process(ResultItems resultItems, Task task) {
|
||||||
|
assertThat(((String) resultItems.get("name")).trim()).isEqualTo("webmagic");
|
||||||
|
assertThat(((String) resultItems.get("author")).trim()).isEqualTo("code4craft");
|
||||||
|
}
|
||||||
|
}).setDownloader(new MockGithubDownloader()).test("https://github.com/code4craft/webmagic");
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue