gpt4 book ai didi

c# - 如何模拟 Microsoft.Deployment.WindowsInstaller session

转载 作者:行者123 更新时间:2023-12-04 11:41:48 27 4
gpt4 key购买 nike

我正在使用 C#。我创建了一个 Wix 安装程序和一个自定义操作来支持 wix 安装程序。现在我正在尝试创建一个仅对 CustomAction 进行单元测试,而没有 LUX。

我尝试了许多不同的方式,但我无法模拟 Microsoft.Deployment.WindowsInstaller session 。任何想法或指针。我正在使用最小起订量。

最佳答案

它并不漂亮,但我为 session 创建了一个简单的包装器。就像是:

public class MockSession
{
private readonly Session _session = null;
private readonly Dictionary<string, string> _properties;

public MockSession()
{
_properties = new Dictionary<string, string>();
}

public MockSession(Session session)
{
_session = session;
}

public string this[string property]
{
get
{
if (_session)
return _session[property];
else
return _properties[property];
}
set
{
if (_session)
_session[property] = value;
else
_properties[property] = value;
}
}
}
每个 CustomAction 方法都是一个包装 session 的 stub :
[CustomAction]
public static ActionResult Method(Session session)
{
var mockSession = new MockSession(session);
return MethodMock(mockSession);
}

public static ActionResult MethodMock(MockSession session)
{
// ... The real work here is testable
}
不理想,但它在紧要关头工作。

关于c# - 如何模拟 Microsoft.Deployment.WindowsInstaller session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52846815/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com