Сбой теста RhinoAutoMocker из-за атрибута метода

У меня есть интерфейс

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 'в МОЕМ ИМЯ 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 ответ

Я не уверен, что проблема связана с вашим пользовательским атрибутом. Кажется, что проблема заключается в использовании API RhinoAutoMocker, так как он был разработан для того, чтобы высмеивать конкретные классы, а не интерфейсы с c'or. Вы можете получить экземпляр вашего интерфейса следующим образом:

 var concreteMock = new RhinoAutoMocker<MyClass>(MockMode.AAA);
 var interfaceMock = mocker.Get<IMyInterface>();
Другие вопросы по тегам