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