正确的方法来TDD上的文件读取字生成器

本文关键字:读取 文件 方法 TDD | 更新日期: 2023-09-27 18:06:11

我正在尝试处理TDD。我正在创建一个从文件中读取字符的类,逐个字符地构建单词。

我遇到一点麻烦的部分是构建单词并返回它的方法。

public string GetNextWord()
{
    // please ignore implementation of characterReader,
    // I'm just using it as an example, I believe implementation is
    // irrelevant when unit testing, correct me if wrong
    return characterReader.NextWord();
}

我如何在TDD方式中做到这一点?我目前有一个已知内容的测试文件。我将它传递给读取器,并检查返回的单词是否以正确的顺序与输入文件中的单词匹配。

文本文件内容:测试文件内容1 .结束。

单元测试

string word1 = wordBuilder.GetNextWord();
string word2 = wordBuilder.GetNextWord();
.
.
Assert.IsTrue(String.Equals(word1, "Test");
.
.

正确吗?我不觉得让测试依赖于外部输入文件并检查硬编码字符串是"正确的"。有人能解释一下正确的TDD方法吗?:)

正确的方法来TDD上的文件读取字生成器

是的,一般来说,最好让每个单元测试不依赖于外部因素。

对于您的测试,您可以考虑在测试设置期间创建一个临时文件,您的测试断言它被正确读取。通过这样做,您还可以访问代码中的文件字符串内容。