如何为依赖注入伪造图像
How to fake an Image for dependency injection
class 我和我的团队需要使用测试驱动开发创建一个项目。然而,我们在依赖注入方面遇到了问题。我们理解这个想法,使代码可以通过来自外部来源的 "faking" 数据进行单元测试,但是某些数据类型给我们带来了麻烦。例如,我们无法弄清楚如何 "fake" 图像 (java.awt.Image)。我们真正想要的只是一个 "empty" 或 "blank" 图像,但是 java 总是希望我们将它指向一个文件。
注入前,测试如下所示:
@Test
public void testThatPieceInitializesWithValues() {
Image img = null;
try {
//Don't have piece images yet...using board as placeholder
img = ImageIO.read(new File("resources/board.jpg"));
} catch (IOException e) { }
Piece p = new Piece(PieceType.Camel, img);
assertNotNull(p);
assertEquals(PieceType.Camel, p.getType());
assertEquals(img, p.getImage());
}
任何帮助将不胜感激,我在 google.
上找不到任何有价值的东西
如果对您的测试很重要,请使用 BufferedImage. They extend Image and can be created in arbitrary sizes and bit depths. You can even draw on them。
Image image = new BufferedImage(640, 480, BufferedImage.TYPE_INT_RGB);
class 我和我的团队需要使用测试驱动开发创建一个项目。然而,我们在依赖注入方面遇到了问题。我们理解这个想法,使代码可以通过来自外部来源的 "faking" 数据进行单元测试,但是某些数据类型给我们带来了麻烦。例如,我们无法弄清楚如何 "fake" 图像 (java.awt.Image)。我们真正想要的只是一个 "empty" 或 "blank" 图像,但是 java 总是希望我们将它指向一个文件。
注入前,测试如下所示:
@Test
public void testThatPieceInitializesWithValues() {
Image img = null;
try {
//Don't have piece images yet...using board as placeholder
img = ImageIO.read(new File("resources/board.jpg"));
} catch (IOException e) { }
Piece p = new Piece(PieceType.Camel, img);
assertNotNull(p);
assertEquals(PieceType.Camel, p.getType());
assertEquals(img, p.getImage());
}
任何帮助将不胜感激,我在 google.
上找不到任何有价值的东西如果对您的测试很重要,请使用 BufferedImage. They extend Image and can be created in arbitrary sizes and bit depths. You can even draw on them。
Image image = new BufferedImage(640, 480, BufferedImage.TYPE_INT_RGB);