我知道这可能很简单,但是因为我刚开始学习单元测试,所有的可能性都让我有些困惑。
我有一个非常简单的方法,应该从文件中读取整数(文件中只包含整数,每个数字存储在新行中)。
public static IEnumerable<int> ReadIntegers(string file)
{
using (var stream = File.OpenText(file))
{
string line;
while ((line = stream.ReadLine()) != null)
{
yield return int.Parse(line);
}
}
}
在我继续之前,不要建议我重构方法,我已经找到了它,并且想学习如何为这个特定的输入参数和输出值编写单元测试。
我在另一个主题上发现有人建议在测试用例中创建一个测试文件,然后尝试将预期结果与实际结果进行比较,类似于以下内容:
[Test]
public void ShouldValidateReadingOfTheFile()
{
string path = @"E:\TestFile.txt";
using (var sw = File.AppendText(path))
{
sw.WriteLine(1);
sw.WriteLine(100);
}
var expected = new List<int>() { 1, 100 };
var actual = TestProject.Merge.ReadIntegersFromFile(path);
Assert.IsTrue(expected.SequenceEqual(actual));
}
我想问一下,这是不是一个不好的做法?你有不同的方法吗?还有关于这个方法的不同测试,还有其他的想法吗。谢谢!