我们有一个自定义身份验证管理器,它使用静态工厂方法来启动存储库的一个实例(因为我们无法解决如何注入一个),这会从数据库中查找一些安全性。
您可以想象它是我们安全基础架构中非常重要的一部分,我想知道其他人是如何接触单元测试组件以确保它们按照设计工作的。
由于
约翰
答案 0 :(得分:1)
恕我直言,最好的解决方案是将您的身份验证和授权逻辑分解为单独的(也称为可测试的)方法,并像对待任何其他方法一样对它们进行单元测试。 您可以设置/模拟IClaimsPrincipal以确保您的Authenticate方法按预期工作。
我们不需要单独测试ClaimsAuthenticationManager本身,因为微软已经这样做了。
我还会考虑设置一些集成测试来确保一切正常,例如(从配置加载策略,解析它们等等,以及你对IClaimsPrincipal的模拟是正确的。
希望有所帮助。