在文件阅读单词生成器上进行 TDD 的正确方法

Correct way to to TDD on a file reading word builder

我正在尝试了解 TDD。 我正在创建一个 class,它从文件中读取字符,逐个字符地构建单词。

我遇到一点麻烦的部分是构建单词的方法和 returns 它。

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 方式执行此操作? 我目前有一个内容已知的测试文件。我将其传递给阅读并检查返回的单词是否以正确的顺序匹配输入文件中的内容。

文本文件内容: 测试文件内容一 End.

单元测试

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

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

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

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