如何从应用程序测试自定义操作函数
本文关键字:自定义 操作 函数 测试 应用程序 | 更新日期: 2023-09-27 18:30:31
我想对WiX安装程序的C#自定义操作函数进行快速测试。即从我的 C# WinForms 应用程序调用它们。
众所周知,函数具有格式ActionResult MyAction(Session s)
但是如何创建一个会话参数以将其传递给函数呢?
喜欢这个
Session session = ? <--- no constructor
session["VAR"]="123";
ActionResult = MyAction(session);
会话对象由Windows安装程序初始化,并在运行时填充值。但你不必依赖它。尝试重构代码,以便可以独立测试其功能部分。
您的自定义操作可能如下所示:
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
,这是很难模拟的。希望你明白这个想法。