默认情况下,字段是可写的,因此在这种情况下不需要使用 Moles,只需将其设置为您想要的值即可。
cspParameters.KeyContainerName = "MyContainerName";
但是,由于您正在使用,MCspParameters.AllInstances
我会假设CspParameters
您想要执行的实例是在您的控制之外创建的,并且您无法在使用它之前对其进行设置。
在这种情况下,您可以使用该类的所有其他构造函数调用的构造函数,并将问题中的字段设置为您的特定值。像这样的东西:
[TestMethod()]
[HostType("Moles")]
public void Test()
{
MCspParameters.ConstructorInt32StringStringCspProviderFlags = (
p,
providerType,
providerName,
keyContainerName,
flags) =>
{
p.ProviderType = providerType;
p.ProviderName = providerName;
p.KeyContainerName = "MyContainerName";
p.KeyNumber = -1;
p.Flags = flags;
};
CspParameters cspParameters = new CspParameters(1);
Assert.AreEqual(cspParameters.ProviderType, 1);
Assert.AreEqual(cspParameters.KeyContainerName, "MyContainerName");
}