如何从应用程序测试自定义操作函数

本文关键字:自定义 操作 函数 测试 应用程序 | 更新日期: 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,这是很难模拟的。希望你明白这个想法。