Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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 - Fatal编程技术网

C# 如何对修改私有成员字段状态的公共方法进行单元测试?

C# 如何对修改私有成员字段状态的公共方法进行单元测试?,c#,unit-testing,C#,Unit Testing,我试图对实现接口的类进行以下方法的单元测试 public async Task StopAsync(CancellationToken cancellationToken) { await Task.Run(() => { _cancellationTokenSource.Cancel(); _pollLoopThread.Join(); }); } 目前,CancellationTokenSource和Thread字段是私有的 在

我试图对实现接口的类进行以下方法的单元测试

public async Task StopAsync(CancellationToken cancellationToken)
{
    await Task.Run(() =>
    {
        _cancellationTokenSource.Cancel();
        _pollLoopThread.Join();
    });
}
目前,
CancellationTokenSource
Thread
字段是私有的

在这种情况下,我如何对这个方法进行单元测试

  • 重构类,以便线程和取消令牌被注入构造函数依赖项,随后可以对其进行模拟

  • 添加属性
    IsRunning
    ,以允许测试托管服务的启动或停止功能

  • 不要对
    StopAsync
    方法进行单元测试


  • 如果该方法对公共属性/方法可以观察到的任何东西都没有任何影响,不要测试它。好的,谢谢……是的,目前该方法没有可观察到的影响