【发布时间】:2014-05-28 20:54:46
【问题描述】:
我正在对包含这一行的代码块进行单元测试
ExifSubIFDDirectory directory = ImageMetadataReader
.readMetadata(new File(uploadedFile.currentPath))
.getDirectory(ExifSubIFDDirectory.class)
ImageMetadataReader 需要一个 jpeg 文件,否则代码会失败。我尝试用这个
创建一个jpeg文件LocalDate localDate = LocalDate.now()
def filePath = localDate.toString() + ".jpeg"
def fileStore = new File(filePath);
fileStore.createNewFile(); // creates file with .jpeg extension
尽管使用 jpeg 扩展名制作文件,但它知道它不是图像,我明白了
not a jpeg file
com.drew.imaging.jpeg.JpegProcessingException: not a jpeg file
at com.drew.imaging.jpeg.JpegSegmentReader.readSegments(JpegSegmentReader.java:212)
at com.drew.imaging.jpeg.JpegSegmentReader.<init>(JpegSegmentReader.java:107)
at com.drew.imaging.jpeg.JpegMetadataReader.readMetadata(JpegMetadataReader.java:70)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:108)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:95)
at com.witsmd.pronghorn.ConvertToDicomService.$tt__getExifTimestamp(ConvertToDicomService.groovy:164)
at com.witsmd.pronghorn.ConvertToDicomServiceSpec.(ConvertToDicomServiceSpec.groovy:156)
我可以在我的项目中放置一个实际的 jpeg 文件并将其用作示例,但我更愿意创建一个图像,保存它,测试方法,然后删除 jpeg 文件。这可能吗?
【问题讨论】:
-
JPEG 文件不仅仅是扩展名为 .jpg 的文件,而是一种二进制格式。请参阅有关如何在 Ruby 中创建 JPEG 文件的答案:stackoverflow.com/questions/676159/…
标签: unit-testing grails