gpt4 book ai didi

c# - 如何对这个 C# 扩展方法进行单元测试?

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

我只是不确定如何模拟一种情况来对此进行测试。我真的应该在文件系统上创建一个文件吗?

public static void DeleteIfExists(this FileInfo fileInfo)
{
if (fileInfo.Exists)
{
fileInfo.Delete();
}
}

最佳答案

我会使用模拟框架,例如 RhinoMocks .

[Test]
public void ShouldDeleteAFileWhenItExists()
{
var mockInfo = MockRepository.GenerateMock<FileInfo>();
mockInfo.Expect( i => i.Exists ).Return( true ).Repeat.Once();
mockInfo.Expect( i => i.Delete() ).Repeat.Once();

var extensions = new FileInfoExtensions();

extensions.DeleteIfExists( mockInfo );

mockInfo.VerifyAllExpectations();
}

[Test]
public void ShouldNotDeleteAFileWhenItDoesNotExist()
{
var mockInfo = MockRepository.GenerateMock<FileInfo>();
mockInfo.Expect( i => i.Exists ).Return( false ).Repeat.Once();
mockInfo.Expect( i => i.Delete() ).Repeat.Never();

var extensions = new FileInfoExtensions();

extensions.DeleteIfExists( mockInfo );

mockInfo.VerifyAllExpectations();
}

Delete抛出异常等其他测试

关于c# - 如何对这个 C# 扩展方法进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366426/

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