c# - 测试单例

标签 c# unit-testing testing singleton

我创建了一个单例,在构造函数中是这样的:

public static class MyCertificate
{
    private readonly static X509Certificate2 _singletonInstance = new X509Certificate2();

    static MyCertificate()
    {
        if(_singletonInstance == null)
            _singletonInstance = GetMyCertificateFromDatabase();
    }

    public static X509Certificate2 MyX509Certificate
    {
        get { return _singletonInstance; }
    }
...
}

MyX509Certificate 属性返回 _sigletonInstance。

不过,我需要做的是调试正在调用的方法,例如 GetMyCertificateFromDatabase()。所以在 an.aspx.cs 中我有这个:

    protected void Page_Load(object sender, EventArgs e)
    {
        InsertCertificate();
    }

    private static void InsertCertificate()
    {
        X509Certificate2 certificate;

        certificate =  MyCerfiticate.MyX509Certificate;

    }

我不太确定如何单步执行,以便我可以单步执行被调用的有助于设置该单例的方法。它只是步进到属性然后在我调试 InsertCertificate() 时返回

最佳答案

我假设您使用的是 visual studio。在 visual studio 中,转到“工具”->“选项”->“调试”,然后取消选中表示跨过属性和运算符的框

编辑:我刚刚注意到您执行了以下操作:

private readonly static X509Certificate2 _singletonInstance = new X509Certificate2();

这将防止您的 _singletonInstance 在您检查时永远为 null。

关于c# - 测试单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2268381/

相关文章:

php - 尝试使用 Codeception 和 Yii2 接受 native js 弹出窗口时出错

c# - SqlMembershipProvider 管理

javascript - AngularJS 测试,找不到我的 Controller

unit-testing - NSubstitute VerifyAll 等效

java - Mockito ArgumentCaptor 验证没有捕获任何内容

visual-studio - 从 visual studio 负载测试中关联服务器指标

database - 测试数据库事务

javascript - 如何在 C# 通用处理程序中引用从 javascript 接收的反序列化对象属性?

c# - 如何从 Unity 中的另一个脚本(使用 IEnumerator)获取值?

C# 命名空间/文件夹 : when is getting too organized/creating too many namespaces not right?