由于方法属性

时间:2018-01-04 08:48:40

标签: c# structuremap-automocking

我有一个界面

public interface IMyInterface 
{    
    [CustomAttribute]    
    void MethodA();
}

以及实现它的相应类

public class MyClass: IMyInterface 
{ 
    public void MethodA()
    { 
        //<some logic>
    } 
}

当我创建一个测试用例时,我正在使用StructureMap.AutoMocking:

var mocker = new RhinoAutoMocker<IMyInterface>(MockMode.AAA);

它引发了一个例外 -

  

System.TypeInitializationException&#39;在我的DLL名称

此外, CustomAttribute 的类型初始化程序引发了异常。

public class CustomAttribute : AuthorizeAttribute 
{ 
    internal bool TestAuthorizationIsEnabled;

    internal bool IsAuthorized(string name) 
    { 
        var auth = new Auth();  
        var val = auth.IsAuthorized(name, Roles); 
        return val; 
    }
}

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

我不确定该问题是否与您的自定义属性有关。似乎问题在于使用RhinoAutoMocker API,因为它旨在模拟具体类而不是与c'tor的接口。您可以按如下方式获取界面实例:

 var concreteMock = new RhinoAutoMocker<MyClass>(MockMode.AAA);
 var interfaceMock = mocker.Get<IMyInterface>();