gpt4 book ai didi

c# - 如何为读取文件并将文件路径作为参数的方法创建单元测试

转载 作者:行者123 更新时间:2023-11-30 14:25:34 24 4
gpt4 key购买 nike

我知道这可能很容易,但由于我刚刚开始学习单元测试,所以我对所有的可能性感到有点困惑。

我有一个非常简单的方法,它应该从文件中读取整数(条件是文件只包含整数,每个整数都存储在一个新行中)。

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));
}

我想问你这是一种不好的做法吗?你有不同的方法吗?关于此方法的不同测试还有其他想法吗?谢谢!

最佳答案

我认为您可以通过这种方式进行单元测试,但我建议您也测试特殊情况。

例如

  • null 作为文件名
  • 一个空文件
  • 一个包含很多条目的大文件
  • 不仅包含整数的文件

创建测试文件是一种常见的做法。

关于c# - 如何为读取文件并将文件路径作为参数的方法创建单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37794393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com