我正在尝试掌握 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 方式执行此操作? 我目前有一个内容已知的测试文件。我将其传递进去以供阅读,并检查返回的单词是否以正确的顺序与输入文件中的内容相匹配。
文本文件内容: 测试文件内容一结束。
单元测试
string word1 = wordBuilder.GetNextWord();
string word2 = wordBuilder.GetNextWord();
.
.
Assert.IsTrue(String.Equals(word1, "Test");
.
.
这是正确的吗?我不认为让测试依赖于外部输入文件并检查硬编码字符串是“正确的”。有人可以解释一下正确的 TDD 方法吗? :)
最佳答案
是的,一般来说最好让每个单元测试不依赖于外部因素。
对于您的测试,您可以考虑创建一个 temp file在测试设置期间,您的测试断言被正确读取。通过这样做,您还可以在代码中访问文件的字符串内容。
关于c# - 在文件阅读单词生成器上进行 TDD 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31776437/