Unit testing 如何基于参数值对调用不同私有函数的方法进行单元测试?

Unit testing 如何基于参数值对调用不同私有函数的方法进行单元测试?,unit-testing,Unit Testing,这就是我正在测试的方法。我想知道是调用了Process()方法还是调用了Reject()方法?现在,逻辑对于类来说过于内部,无法完全测试它。我建议使用另一种方法,定义另一个类来包含逻辑,并将Process/Reject方法放在上面 新类应该实现一个接口,您可以将其设置为控制器上的属性/构造函数参数。然后,您可以使用MOQ之类的模拟框架来模拟这些方法,并验证它们是否被调用。 这是最低起订量的入门 另一种方法是使用受保护的虚拟方法,并在测试中重写它们,以检查是否至少调用了这些方法。 这将是以下内容的

这就是我正在测试的方法。我想知道是调用了Process()方法还是调用了Reject()方法?

现在,逻辑对于类来说过于内部,无法完全测试它。我建议使用另一种方法,定义另一个类来包含逻辑,并将Process/Reject方法放在上面

新类应该实现一个接口,您可以将其设置为控制器上的属性/构造函数参数。然后,您可以使用MOQ之类的模拟框架来模拟这些方法,并验证它们是否被调用。 这是最低起订量的入门

另一种方法是使用受保护的虚拟方法,并在测试中重写它们,以检查是否至少调用了这些方法。
这将是以下内容的一个变体

感谢TGH的快速响应。由于这段代码来自一个已经完成并发布的项目,我认为我现在不能使用您的任何选项。不过,我会把你的建议用于将来的用途!
    [HttpPost]
    public ActionResult Save(Master model, FormCollection form)
    {
        if (form != null)
        {
            if (int.Parse(form["btnFlag"]) == 2)
            {
                Process(model);
            }
            else if (int.Parse(form["btnFlag"]) == 3)
            {
                Reject(model);
            }
        }
        return RedirectToAction("Index");

    }