Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 使用Moq对C#中的函数进行单元测试_Unit Testing_Moq - Fatal编程技术网

Unit testing 使用Moq对C#中的函数进行单元测试

Unit testing 使用Moq对C#中的函数进行单元测试,unit-testing,moq,Unit Testing,Moq,我正试图使用Moq在C#中为下面的函数编写单元测试,但是我发现我的脑子里有点不知所措,比如verify和其他Moq概念 public X509Certificate GetCertificate(string certificateName) { var settingOverride = this.settings.SecretOverridesSetting.FirstOrDefault(secret => secret.Name.Equals(

我正试图使用Moq在C#中为下面的函数编写单元测试,但是我发现我的脑子里有点不知所措,比如verify和其他Moq概念

public X509Certificate GetCertificate(string certificateName)
        {
            var settingOverride = this.settings.SecretOverridesSetting.FirstOrDefault(secret => secret.Name.Equals(certificateName, StringComparison.InvariantCultureIgnoreCase));
            if (settingOverride != null)
            {
                X509Certificate targetCertificate;
                var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
                store.Open(OpenFlags.ReadOnly);
                X509Certificate2Collection certColl = store.Certificates.Find(X509FindType.FindByThumbprint, settingOverride.Value, false);
                if (certColl.Count == 0)
                {
                    return null;
                }

                targetCertificate = certColl[0];
                store.Close();
                return targetCertificate;
            }
            else
            {
                return SecretStoreClientHelper.GetCertificate(certificateName);
            }
        }
这是我第一次用任何语言为函数编写单元测试。
有人能帮我介绍几个单元测试场景吗,我可以在哪里使用Moq。

您需要以一种不与任何实现紧密耦合的方式重构此代码。因为您不能使用MOQ模拟类的非虚拟方法


有关使用MOQ创建测试方法的更多详细信息,请参阅链接。

这是第一次在没有MOQ或任何其他模拟框架的情况下编写测试。普通c代码。