我正在测试可能修改文件的功能。如何在我想要的情况下测试它是否保持不变?
答案 0 :(得分:5)
您可以使用DI来模拟文件编写者。这样你根本不需要文件,只检查是否调用了write函数,你知道文件是否被修改过。
答案 1 :(得分:1)
我会将功能分成两个独立的功能;第一个决定是否应该进行修改,第二个进行通知。第二个只在必要时才被调用。用假装语言:
function bool IsModificationRequired()
{
// return true or false based on your actual code
}
function void WriteFile()
{
new File().Write("file");
}
function void WriteIfModified()
{
if (IsModificationRequired())
WriteFile();
}
并测试
Assert.IsTrue(IsModificationRequired());
答案 2 :(得分:0)
假设您使用的是文本文件且大小合理。只是哈希文件内容,如果在修改之前和modidfy哈希码相同之后 - 那就意味着文件内容没有改变。
以下是Algorithim设计手册的链接 - Steve Skiena(Google图书搜索结果) 第3.8节 How can i convicne you that a file isn't changed ?