我正在尝试使用NSubstitute在C#中模拟静态类和静态方法。我显然不想为每个单元测试生成一个excel文件。所以我绝对想嘲笑你。但是因为这是一个静态类,所以我无法模仿它,因为这是一个静态类。
public static class FileGenerator
{
public static async Task GenerateExcelFile(string filename, IEnumerable<T> content)
{
.....
}
}
var mockobj = Substitute.For<FileGenerator>(); // Returns error有什么提示吗?
发布于 2020-02-28 23:57:15
这是一个好主意,只使用非常少的静态。这是一种很容易被误认为是捷径的机制。但这些最终都会导致问题的发生。
对于常量或运行时常量,可以使用静态。但不要使用它来更改数据。一个叫FileGenerator的东西?就在这里,你不应该做静态的事情。
而是:
创建一个需要instantiation
现在你可以很容易地在并行中拥有多个实例。您还可以提取接口/抽象类,然后创建不同的实现。包括一个模拟实现。
https://stackoverflow.com/questions/60455122
复制相似问题