Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何为动态测试任务编写单元测试_C#_Unit Testing_Stub_Shim - Fatal编程技术网

C# 如何为动态测试任务编写单元测试

C# 如何为动态测试任务编写单元测试,c#,unit-testing,stub,shim,C#,Unit Testing,Stub,Shim,我不知道如何为BroadcastChangeNotification编写单元测试。有什么建议吗?我的意思是如何使用存根或垫片来测试这个静态功能。我很难伪造相关的上下文。也许我的问题应该是如何检查是否调用了ConfigurationChanged public class ConfigurationHub : Hub { private static readonly IHubConnectionContext ConnectionContext = GlobalHos

我不知道如何为BroadcastChangeNotification编写单元测试。有什么建议吗?我的意思是如何使用存根或垫片来测试这个静态功能。我很难伪造相关的上下文。也许我的问题应该是如何检查是否调用了ConfigurationChanged

public class ConfigurationHub : Hub
{

    private static readonly IHubConnectionContext 
        ConnectionContext = GlobalHost
            .ConnectionManager
            .GetHubContext<ConfigurationHub>()
            .Clients;


    public static void BroadcastChangeNotification()
    {
        Task.Run(() => ConfigurationHub
            .ConnectionContext
            .All.ConfigurationChanged());
    }
}

我不知道如何为通知编写单元测试。有什么建议吗?问题应该在问题中,而不是在评论中。另外,您没有提供足够的信息来获得有用的答案。我不清楚吗?只是不知道如何使用存根或垫片来测试函数BroadcastChangeNotification。以你的观点,我会更多地考虑测试ConfigurationChanged的结果,而不是它是否被调用,因为BroadcastChangeNotification实际上没有做任何事情。问题是您使用的是静态方法-这使得BroadcastChangeNotification在单元测试意义上不稳定。您只能使用更通用的集成测试方法对其进行测试,并且只能验证其最终结果。要使其可测试,请引入适当的接口,而不是ConfigurationChange,以便您可以模拟它。