在视图中测试共享功能

时间:2014-05-02 15:00:14

标签: c# unit-testing asp.net-mvc-4 helper

我创建了一个类" Helper.cshtml"在我的App_Code文件夹中包含一些Helper函数,以便重用somme逻辑accros不同的视图。

以下是我的Helper.cshtml类中的代码:

@using System.Web.Mvc.Html
@using System.Web.Mvc

@functions
{
    public static bool DisplaySectionGestionnaireExterne(string individusParRole)
    {
        if (individusParRole != new RoleIndividuGestionnaireExterne().Code)
            return true;

        return (Model.IsInvestissementInterne || Model.IsInvestissementExterne || Model.IsInvestissementFondsExterne);
    }
}

有没有办法对该功能进行单元测试,而不测试使用该功能的整个视图?

1 个答案:

答案 0 :(得分:1)

我认为您应该问自己这个逻辑是否属于视图。根据经验,任何具有模型数据的逻辑操作都应被视为业务逻辑并保持在视图之外。这样,您可以在单元测试中对这些条件进行单元测试而没有问题。

由于它似乎是对视图采取操作的逻辑,我认为您可能希望将此代码与视图模型一起使用(如果您使用的是视图模型方法)。您的视图模型可以仅通过调用DisplaySectionGestionnaireExterne来使用,该{{1}}将是您要在视图中使用的布尔值。视图保持清洁,其他地方也是逻辑。

我知道我没有直接回答您的问题,但测试视图需要实例化其他几个对象并添加大量压倒性的模拟和代码。