【问题标题】:How to unit test the Private Actions in MVC application?如何对 MVC 应用程序中的私有操作进行单元测试?
【发布时间】:2012-09-17 04:50:38
【问题描述】:

我们可以对将访问说明符设为私有的操作进行单元测试吗?如果可能,我们如何对私有操作进行单元测试?

【问题讨论】:

    标签: asp.net-mvc-3 unit-testing nunit


    【解决方案1】:

    你可以,但为什么你有私有的操作方法?我会重新考虑一下这种架构。如果您忘记将其设为私有,它将变为 URL 可寻址。

    但是,如果您真的想这样做,请右键单击该方法并添加一个单元测试。单元测试项目将向应用程序 assemblyinfo.cs [InternalsVisibleTo] 添加一个项目,因此可以通过在测试项目中创建的代理访问它的私有方法。 有点乱,不妨把它拉到一个单独的类中,使其公开或内部等

    【讨论】:

    • 你能给我举个例子来单元测试 mvc 应用程序中的私有操作方法吗?
    • 右键单击它,选择“创建单元测试”,剩下的将为您完成。
    【解决方案2】:

    一种选择是公开操作并用NonActionAttribute 装饰它。

    【讨论】:

    • 这绝不应该是一个选项,它是一种不好的做法,不幸的是,该属性甚至存在。如果您的控制器上有一个不可路由的公共方法,那么您就违反了该控制器应该做的事情。将它放在另一个项目/类中并测试(如下所述)在 weblogs.asp.net/gunnarpeipman/archive/2011/04/09/… 末尾的注释 cmets@
    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2016-04-04
    • 1970-01-01
    • 2016-10-21
    相关资源
    最近更新 更多