1

我有一个界面

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

以及实现它的相应类

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

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

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

它抛出异常 -

我的 DLL 名称中的 System.TypeInitializationException'

此外, 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; 
    }
}

如何修复此错误?

4

1 回答 1

0

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

 var concreteMock = new RhinoAutoMocker<MyClass>(MockMode.AAA);
 var interfaceMock = mocker.Get<IMyInterface>();
于 2018-01-04T21:42:12.533 回答