gpt4 book ai didi

c# - 如何从应用程序测试 CustomAction 功能?

转载 作者:太空狗 更新时间:2023-10-30 00:51:30 26 4
gpt4 key购买 nike

我想对 WiX 安装程序的 C# CustomAction 函数进行快速测试。即从我的 C# WinForms 应用程序中调用它们。

众所周知,函数的格式为 ActionResult MyAction(Session s)

但是如何创建 session 参数并将其传递给函数呢?

像这样

Session session = ? <--- no constructor
session["VAR"]="123";
ActionResult = MyAction(session);

最佳答案

session 对象由 Windows Installer 初始化,并在运行时填充值。但你不必依赖于此。尝试重构您的代码,以便可以独立测试其功能部分。

您的自定义操作可能如下所示:

public ActionResult MyAction(Session s)
{
var param1 = session["VAR1"];
var param2 = session["VAR2"];

return new CustomActionsRunner().MyAction(param1, param2);
}

CustomActionRunner 只是一个类,它封装了要从自定义操作调用的方法:

public class CustomActionRunner
{
public ActionResult MyAction(string s1, string s2)
{
// here comes all the logic of your CA
return ActionResult.Success;
}
}

因此,您可以专注于对 CustomActionRunner 进行单元测试,它不依赖于某些难以模拟的特定对象,例如 Session。希望你明白了。

关于c# - 如何从应用程序测试 CustomAction 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26926368/

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