我有一个生成一些图像(1.jpg、2.jpg...)并将它们写入文件系统的方法。我想用 ApprovalTest 验证这个方法的结果。问题是 Approvals.verify(image)
将接收和批准的文件命名为测试方法的名称。所以我无法通过一次测试验证多张图像。
如何在一次测试中验证多张图片?
最佳答案
您可以使用 NamerFactory
更改附加到文件末尾的信息。为下次测试。
[TestFixture]
class Program
{
[Test]
[UseReporter(typeof(WinMergeReporter))]
public void Test1()
{
var image1 = @"firstImage.png";
var image2 = @"secondImage.png";
NamerFactory.AdditionalInformation = Path.GetFileNameWithoutExtension(image1);
ApprovalTests.Approvals.Verify(image1);
NamerFactory.AdditionalInformation = Path.GetFileNameWithoutExtension(image2);
ApprovalTests.Approvals.Verify(image2);
}
}
Approval Tests
在结束前创建了两个带有 firstImage
和 secondImage
的文件。为清楚起见,请参阅屏幕截图:
我的对象是字符串,但对于您的图像,所有对象都是一样的。您可以像以前一样调用 Approvals.Verify(image)
,但只需像示例中那样更改 AdditionalInformation
。
注意:我不太建议在一次测试中验证两个图像,因为如果一个验证失败 - 下一个验证将不会执行。并且 Approval Tests 无法连接图像并一步验证它们,至少如果您自己执行此操作。
编辑:为Java尝试使用,位于NamerFactory
public static void asMachineSpecificTest(Function0<String> environmentLabeller)
{
additionalInformation = environmentLabeller.call();
}
并提供适当的函数,它将返回您的图像的名称
关于java - 使用 ApprovalTest 验证多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14155409/