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
C# 如何模拟Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.CryptographyManager_C#_Unit Testing_.net Core_Moq_.net Standard - Fatal编程技术网

C# 如何模拟Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.CryptographyManager

C# 如何模拟Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.CryptographyManager,c#,unit-testing,.net-core,moq,.net-standard,C#,Unit Testing,.net Core,Moq,.net Standard,我正在使用dotnetcore标准将一个小的NuGet包放在一起 NuGet将解析加密的SAML包 我们的组织使用Microsoft.Practices.EnterpriseLibrary.Security.Cryptography库 为了允许分离,我编写了在其中一个类的构造函数中接受CryptographyManager实例的代码 我正在尝试编写单元测试来测试加密字符串的解密,但不知道如何MoqCryptographyManager 单元测试项目是一个DotNet核心项目 我特别在纽吉打电话:

我正在使用dotnetcore标准将一个小的NuGet包放在一起

NuGet将解析加密的SAML包

我们的组织使用Microsoft.Practices.EnterpriseLibrary.Security.Cryptography库

为了允许分离,我编写了在其中一个类的构造函数中接受CryptographyManager实例的代码

我正在尝试编写单元测试来测试加密字符串的解密,但不知道如何
Moq
CryptographyManager

单元测试项目是一个DotNet核心项目

我特别在纽吉打电话:

var eb=Convert.FromBase64String(_xmlString);
//解密发生在这里
var db=_cryptographyManager.DecryptSymmetric(“RijndaelManaged”,eb);
_xmlString=Encoding.Unicode.GetString(db);
有人能提供如何进行单元测试的建议吗?我会提供一些代码,虽然不知道从哪里开始。。。我的单元测试缺少一个重要部分:

[TestMethod]
员工信息加密SparsedCorrect()的公共无效测试
{
//安排
//不知道在这里做什么//
CryptographyManager CryptographyManager=null;
预期的员工信息=新员工信息
{
FirstName=“Test”,
LastName=“Case”,
EmployeeNumber=“000111111”,
LanguageCode=“en”,
CountryCode=“CA”,
RequestedPage=string.Empty,
PositionId=“pos999999”,
Role=“EKR”
};
IParser p=新的XMLParser(_encryptedGoodXml,cryptographyManager);
//表演
EmployeeInformation结果=p.EmployeeInformation;
//断言
result.Should().beequivalento(预期);
}

正如我从文档中看到的,
CryptographyManager
是一个
抽象类,因此可以很容易地模拟它,如:

var mockCryptoManager = new Mock<CryptographyManager>();

非常感谢彼得。我想我只是想得太多了——我想我需要一把钥匙什么的。
mockCryptoManager
    .Setup(cm => cm.DecryptSymmetric("RijndaelManaged", It.IsAny<byte[]>()))
    .Returns(/* Here you have to put the value you want the mock return with */);
CryptographyManager cryptographyManager = mockCryptoManager.Object;