0

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

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

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

我认为这将是一个很好的机会来看看使用 ApprovalTests

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

我一直在看的是Approvals.VerifyApprovals.VerifyFile扩展。

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

usingVerifyFile创建一个接收到的文件,但文件的内容只是我要求它验证的文件名的一行。

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

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

有用的信息?

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

4

1 回答 1

1

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

这是伪代码和过程。

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

[注意:如果您没有安装图像差异,例如 TortoiseDiff,您可能需要使用 FileLauncherReporter]

运行这个,一旦你得到结果,通过将剪贴板粘贴到 cmd 窗口来移动文件。它会将临时 tif 移动到名为 ClassName.TestTiff.approved.tif 的测试目录

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

快乐测试!

于 2014-06-30T22:11:03.893 回答