首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模拟静态类

模拟静态类
EN

Stack Overflow用户
提问于 2020-02-28 23:49:48
回答 1查看 131关注 0票数 0

我正在尝试使用NSubstitute在C#中模拟静态类和静态方法。我显然不想为每个单元测试生成一个excel文件。所以我绝对想嘲笑你。但是因为这是一个静态类,所以我无法模仿它,因为这是一个静态类。

代码语言:javascript
运行
复制
public static class FileGenerator 
{
    public static async Task GenerateExcelFile(string filename, IEnumerable<T> content) 
    {
        .....
    }
}

var mockobj =  Substitute.For<FileGenerator>(); // Returns error

有什么提示吗?

EN

回答 1

Stack Overflow用户

发布于 2020-02-28 23:57:15

这是一个好主意,只使用非常少的静态。这是一种很容易被误认为是捷径的机制。但这些最终都会导致问题的发生。

对于常量或运行时常量,可以使用静态。但不要使用它来更改数据。一个叫FileGenerator的东西?就在这里,你不应该做静态的事情。

而是:

创建一个需要instantiation

  • create实例的普通类,并将其分配给静态字段

现在你可以很容易地在并行中拥有多个实例。您还可以提取接口/抽象类,然后创建不同的实现。包括一个模拟实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60455122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档