编程语言
首页 > 编程语言> > c# – 如何从应用程序测试CustomAction函数?

c# – 如何从应用程序测试CustomAction函数?

作者:互联网

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

因为它已知函数的格式为ActionResult MyAction(Session s)

但是如何创建会话参数以将其传递给函数?

像这样

Session session = ? <--- no constructor
session["VAR"]="123";
ActionResult  = MyAction(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,wix,custom-action
来源: https://codeday.me/bug/20190528/1172277.html