:
, :
class ImageFetcher {
public Image getImage(String url) {
Document pageSource = fetchSource(url);
Image myImage = parseHtmlToImage(pageSource);
return Image;
}
private Document fetchSource(String url) {
}
private Image parseHtmlToImage(Document pageSource) {
return image;
}
}
: " " ImageFetcher "? IMO fetchSource . ( ) , " Web Utils ". ImageFetcher utils.
class ImageFetcher {
private WebUtils webUtils;
public ImageFetcher(webUtils webUtils) {
this.webUtils = webUtils;
}
public Image getImage(String url) {
Document pageSource = webUtils.fetchSource(url);
Image myImage = parseHtmlToImage(pageSource);
return Image;
}
private Image parseHtmlToImage(Document pageSource) {
imageURL =
image = webUtils.fetchImage(imageURL);
return image;
}
}
Image Fetcher is currently focusing on developing which image to use. You no longer need to care about how you get this image from the network. WebUtils can mock unit tests.
@test
public void getImage_ReturnsBannerImage() {
Image expected =
String html = "<html><img src="fred"/>...</html>";
mockedWebUtil.fetchSource(Any.String).returns(html);
mockedWebUtil.fetchImage("fred").returns(expected);
var subject = new ImageFetcher(mockedWebUtil);
var actual = subject.getImage("blah");
Assert.AreEqual(expected, actual);
}
source
share