【发布时间】:2017-08-07 11:07:48
【问题描述】:
在 Web API 中使用 IDataProtectionProvider 时,IoC 容器配置有 AddDataProtection (services.AddDataProtection();) 并允许使用 DI 在服务中检索 IDataProtectionProvider:
private readonly IDataProtectionProvider _dataProtectionProvider;
public CipherService(IDataProtectionProvider dataProtectionProvider)
{
_dataProtectionProvider = dataProtectionProvider;
}
如果我想测试我的CipherService(在我的情况下使用 Xunit),如果不使用 DI,我将无法完成这项工作,所以我的问题是;
问:如何在测试项目中使用 DI 或以其他方式制作 IDataProtectionProvider?
【问题讨论】:
-
那么为什么不直接模拟依赖并将其注入到依赖类中呢?
-
因为这是一个集成测试。
-
查看source code 并查看需要模拟/存根/伪造的依赖项
标签: c# encryption asp.net-core .net-core integration-testing