Сбой теста 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>();