Intro
Я делаю своего рода приложение OCR, которое должно распознавать символы на основе предварительно сохраненных изображений .bmp каждого символа.
Теперь, для данной части скриншота экрана, где я знаю, что будет персонаж, я хочу передать текущее изображение в CharacterFactory, который вернет объект Character:
class CharacterFactory : ICharacterFactory {
private Collection<Bitmap> aPictures = new HashTable<Bitmap>();
private Collection<Bitmap> bPictures = new HashTable<Bitmap>();
private Collection<Bitmap> cPictures = new HashTable<Bitmap>();
...
public CharacterFactory() {
LoadAllPictures();
}
...
public Character GetCharacter(Bitmap characterToRecognize) {
if (aPictures.Contains(characterToRecognize)) return new ACharacter();
if (bPictures.Contains(characterToRecognize)) return new BCharacter();
if (cPictures.Contains(characterToRecognize)) return new BCharacter();
...
}
}
У меня вопрос
как провести модульное тестирование этого класса?Единственный способ проверить класс, который я вижу, - это действительно сохранить пару растровых изображений для передачи аргумента characterToRecognize
и сравнить их со списком предварительно сохраненных изображений, которые есть в моей программе.Конечно, в этом есть проблема, заключающаяся в том, что требуется некоторое время для загрузки изображений и другое время для запуска алгоритма GetCharacter ().
Конечно, я мог бы обернуть каждую коллекцию xPictures моей CharacterFactory в новый классно я просто перенесу проблему в этот новый класс.
Как справляться с подобными ситуациями?