gpt4 book ai didi

c# - 如何对以文件名作为参数的方法进行单元测试

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:34 24 4
gpt4 key购买 nike

我有以下方法:

public static IEnumerable<Customer> GetStuff(string fileName,int filterValue)

您将如何对此进行单元测试?显然,我的问题出在 fileName 参数上。

谢谢!

最佳答案

做另一个答案尝试:我猜 JollySin 解决了问题,但解释不够(恕我直言)

您似乎使用 fileName 并在 GetStuff 方法中访问系统文件系统。如果您想对其进行单元测试,这就是问题所在。您必须将您对文件系统所做的事情(打开/创建/读取文件等)推送到界面或其他东西中,然后模拟它。一个例子可能是:

public interface IMyFileIO
{
public byte[] ReadFromFile(int bytes); // whatever
}

public static IEnumerable<Customer> GetStuff(IMyFileIO file, int filterValue)
{
}

然后使用模拟框架(例如 MOQ )来模拟 IMyFileIO:

[Test]
public void TestFileIO()
{
var mock = new Mock<IMyFileIO>();
mock.Setup(foo => foo.ReadFromFile(2)).Returns(new byte[]{2,3});

var myResult = MyClass.GetStuff(mock.Object, 10);
Assert. // <- what you need to check
}

请注意,根据您正在做的事情,很可能已经有一个接口(interface)/基类提供您需要的功能(StreamWriter,等等)

关于c# - 如何对以文件名作为参数的方法进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9901338/

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