首页 > 解决方案 > 如何对修改私有成员字段状态的公共方法进行单元测试?

问题描述

我正在尝试对实现IHostedService接口的类的以下方法进行单元测试。

public async Task StopAsync(CancellationToken cancellationToken)
{
    await Task.Run(() =>
    {
        _cancellationTokenSource.Cancel();
        _pollLoopThread.Join();
    });
}

目前,CancellationTokenSourceandThread字段是私有的。

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

  1. 重构该类,以便线程和取消标记被注入构造函数依赖项,随后可以对其进行模拟。

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

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

标签: c#unit-testing

解决方案


推荐阅读