如何为依赖注入伪造图像

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);