c# - 如何对修改私有成员字段状态的公共方法进行单元测试?
问题描述
我正在尝试对实现IHostedService接口的类的以下方法进行单元测试。
public async Task StopAsync(CancellationToken cancellationToken)
{
await Task.Run(() =>
{
_cancellationTokenSource.Cancel();
_pollLoopThread.Join();
});
}
目前,CancellationTokenSource
andThread
字段是私有的。
在这种情况下,我如何对这种方法进行单元测试?
重构该类,以便线程和取消标记被注入构造函数依赖项,随后可以对其进行模拟。
添加属性
IsRunning
以允许测试托管服务启动或停止的功能不要对
StopAsync
方法进行单元测试
解决方案
推荐阅读
- unity3d - Unity 在 Unity 5.6.4p4 上实例化预制件时崩溃
- oracle - Oracle STANDARD_HASH 结果在使用不同平台时显示不同的结果
- .net - 使用 Refit 模拟 CookieContainer 行为
- junit - 在 JUnit 5 中将 `Supplier` 作为消息提供者的选项的实际用途
- python - 将 MongoDB 文档中的嵌套字段组合成 python 数组
- java - Java 9 模块化应用程序中的 Logback 不起作用
- sql-server - 如何将 SQL Server Express 架构转储到 github?
- c# - C# 跳过 DispatcherOperation
- c# - 如何使用 C# 在 Systray 应用程序中动态添加菜单项
- android - Uber、Swiggy、Rapido 等 Android 应用程序如何能够在没有任何特殊许可的情况下在其他应用程序上绘制小地图?