这是否违反了良好的单元测试模式?

时间:2014-04-30 03:25:37

标签: c# unit-testing

我有一个名为Enforce的小班,可以做好......论证执行。

public static class Enforce
{
    public static void ArgumentNotNull<T>(T parameter, string parameterName)
    {
        CheckParameterName(parameterName);

        if (parameter.IsNull())
            throw new ArgumentNullException(parameterName);
    }

    // Edited for briveity

    private static void CheckParameterName(string parameterName)
    {
        if (parameterName.IsNullOrWhiteSpace())
            throw new ArgumentNullException("parameterName");
    }
}

我只是想知道在构造函数中使用这个是否会产生一个不可接受的依赖:

public ControllerBase(TValidatingService service, IModelStateWrapperFactory modelStateWrapperFactory)
    {
        Enforce.ArgumentNotNull(service, "service");

        // Or should I be doing it like this?
        if (service == null)
            throw new System.ArgumentNullException("service");

        this.Service = service;
    }

1 个答案:

答案 0 :(得分:3)

我认为它不会造成不必要的依赖,但是你正在重新发明轮子,因为合同API已经存在设计,例如微软的Code Contracts