1
当在Web API使用IDataProtectionProvider
,IoC容器配置了AddDataProtection
(services.AddDataProtection();
),并允许使用DI的服务检索IDataProtectionProvider
这样:在测试项目中使用IDataProtectionProvider?
private readonly IDataProtectionProvider _dataProtectionProvider;
public CipherService(IDataProtectionProvider dataProtectionProvider)
{
_dataProtectionProvider = dataProtectionProvider;
}
如果我想测试我的CipherService
(使用的xUnit我的情况),我将无法完成这项工作,而无需使用DI,所以我的问题是;
问:如何使用DI或以其他方式IDataProtectionProvider
在一个测试项目?
那为什么不嘲笑的依赖,并将其注入到依赖类? – Nkosi
因为这是一个集成测试。 – Marcus
回顾[源代码](https://github.com/aspnet/DataProtection/blob/dev/src/Microsoft.AspNetCore.DataProtection/DataProtectionServiceCollectionExtensions.cs),看看你需要模拟/存根/假哪些依赖 – Nkosi