В ValidationManager есть общедоступный словарь для хранения компонентов пользовательского интерфейса, которые реализуют интерфейс IValidatable.
Я тестирую командный класс, которому требуется экземпляр ValidationManager, и я хочу, чтобы он не прошел проверки.Поэтому я переопределяю метод ValidationManager «validateItem ()» следующим образом:
var validationManagerRepos:ValidationManager = ValidationManager(mockRepository.createStub(ValidationManager));
var validationItem:IValidatable = IValidatable(mockRepository.createStub(IValidatable));
var validatableItems:Dictionary = new Dictionary();
validatableItems[validationItem] = false;
SetupResult.forCall(validationManagerRepos.validateItem(validationItem)).returnValue(false);
Моя проблема в методе выполнения команды.Он проверяет, является ли validationItem одновременно DisplayObject (isVisble) и IValidatable.Любой хитрый способ заглушить типизированный объект И интерфейс?Или мне просто нужно создать экземпляр некоторого существующего объекта, который уже удовлетворяет обоим?
for (var iVal:Object in validationManager.validatableItems)
{
if (isVisible(DisplayObject(iVal)))
{
passed = validationManager.validateItem(IValidatable(iVal));
eventDispatcher.dispatchEvent(new ValidationEvent(ValidationEvent.VALIDATE_COMPLETED, IValidatable(iVal), passed));
if (!passed)
{
allPassed = false;
}
}
}