使用ApprovalTests验证Tif

时间:2014-06-30 15:50:16

标签: tiff approval-tests

我被要求更新一个系统,其中标题信息通过第三方控制台应用程序注入到tif中。我不需要担心这一点。

我被要求查看生成标题信息的合并过程。

在我进行任何更改之前,假定进程生成的当前文件是正确的,因此我想将其添加为已批准的结果,然后我可以检查我所做的更改是否会按预期更改文件。

我认为这是查看using ApprovalTests

的好机会

我遇到的问题是,由于任何原因,视频的链接被认为是腐败的(可能会告诉我小猫跳进盒子或其他东西,这会阻止我工作,具有讽刺意味的是,我放慢了工作的速度,因为我不能看任何帮助视频)。

我一直关注的是Approvals.VerifyApprovals.VerifyFile扩展程序。

但似乎正在发生的事情让我感到困惑。

使用VerifyFile创建一个收到的文件,但该文件的内容只是我要求它验证的文件名称的一行。

使用Verify(new FileInfo("FileNameHere"))似乎无法生成我需要标记为已批准的received文件,但测试确实返回说它无法找到已批准的tif文件。

我可能使用VerifyFile完全错误,并且可能也在考虑使用Verify错误。

有用信息?

可能有用的是,因为这是一个遗留应用程序,作为Windows服务运行,我已经将服务包装在一个允许我调用例程的工具中,所以这些文件实际上被写在机器上的其他地方在我的控制之外(有一个配置,但是如果成功的话,我调用的服务的返回会在固定位置生成一个文件)。我已经尝试将其复制到单元测试项目中,但这似乎没有帮助。

1 个答案:

答案 0 :(得分:1)

验证(File)和VerifyFile(字符串)都用于验证现有文件。因此,他们只是将收到的文件设置为您传入的文件。您仍然需要移动/批准/创建批准的文件。

这是伪代码和过程。

[UseReporter(typeof(DiffReporter), typeof(ClipboardReporter)]
public void TestTiff()
{
    string tif = YourProcessToCreateTifFile();
    Approvals.VerifyFile(tif);
}

[注意:如果你没有安装图像差异,比如TortoiseDiff,你可能想要使用FileLauncherReporter]

运行此命令,获得结果后,将剪贴板粘贴到cmd窗口中移动文件。 它会将临时tif移动到名为ClassName.TestTiff.approved.tif的测试目录

之后,测试应该通过,直到发生变化。

快乐测试!