c# - 如何使用 Moq 模拟 X509Certificate2?

标签 c# visual-studio-2010 c#-4.0 mocking moq

我需要让我的 X509Certificate2.Subject 在单元测试中返回乱码以覆盖代码。我试过使用 Moq,但它失败了,因为 Subject 不是虚拟方法。有没有办法做到这一点,还是我必须在这里重新发明轮子?

          Mock<X509Certificate2> mockCert = new Mock<X509Certificate2>(contextAccessor.Certificate.RawData);
      mockCert.Setup(m=>m.Subject).Returns("kjewnr,mwnzlxkcuvlkrj,wmelq");
      mockCert.CallBase = true;

      contextAccessor.Certificate = mockCert.Object;
      authenticatorAccessor.LogAuthentication(context);

最小起订量可以做到吗?如果没有,是否有其他图书馆适合我?谢谢。

最佳答案

旧帖子,但自从我通过 Google 遇到这个问题后,我想我会提到对我有用的东西。

private X509Certificate2 CreateSelfSignedCertificate()
{
    var ecdsa = ECDsa.Create();
    var req = new CertificateRequest("foobar", ecdsa, HashAlgorithmName.SHA256);
    X509Certificate2 cert = req.CreateSelfSigned(DateTimeOffset.Now, DateTimeOffset.Now.AddYears(5));

    return cert;
}

其中 foobar 是您要模拟的主题。

关于c# - 如何使用 Moq 模拟 X509Certificate2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37555121/

相关文章:

visual-studio-2010 - Visual Studio 2010 随机表示命令行已更改并重建

javascript - Web 表单页面内的 ASP.NET 4 表单

c# - 查找 POST 参数

c# - 当前上下文中不存在名称 'Tasks'

java - 无法使用 C# 重写 PDFTextStripper.writeString(String text, List<TextPosition> textPositions) 方法?

c# - 测试字符串是否可以转换为其他各种类型

c# - Fake It Easy - A<T>.Ignored() with string - A<string>.Ignored()

visual-studio-2010 - Visual Studio 2010 中的 "Error MSB3073"- 构建后命令不处理换行符?

javascript - 可调整大小的母版页和内容占位符

wpf - 如何将 WPF 窗口大小设置为相对监视器屏幕的 25%