对于班级,我的团队和我需要使用测试驱动开发创建项目。但是,我们遇到依赖注入问题。我们理解这个想法,通过“伪造”来自外部源的数据使代码单元可测试,但是一些数据类型给出了麻烦。例如,我们无法弄清楚如何“伪造”一个Image(java.awt.Image)。我们真正想要的只是一个“空”或“空白”的图像,但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());
}
任何帮助都会非常感激,我在谷歌上找不到任何有价值的东西。
答案 0 :(得分:4)
使用BufferedImage。它们扩展了Image,可以以任意大小和位深度创建。如果对您的测试很重要,您甚至可以draw on them。
Image image = new BufferedImage(640, 480, BufferedImage.TYPE_INT_RGB);