Я пытаюсь изменить свое модульное тестирование ArcGIS и начать использовать макеты (я использую Rhino).
Когда я начал писать тесты, я заметил, что должен начать насмехаться над многими объектами и заглушить множество методов, чтобы пройти даже один тест.
Например - мой контроллер сначала получает RelationshipClass
(поэтому мне нужно заглушить IWorkspace
и возвращенный IRelationshipClass
), затем также получает IFeature
(заглушку) и, наконец, вызывает stubRelClass.GetRelatedObjects(stubFeature)
, чтобы вернуть ISet
других IFeatures
.
Это нормально, когда нужно заглушить так много объектов и методов, чтобы он прошел? Я тоже чувствую
как будто мне действительно нужно перешагнуть код (да - я знаю, что я должен был сначала написать тесты, я все еще пробую этот), чтобы выяснить, что нужно заглушить следующим, и что я должен вернуть.
У меня также возникают проблемы с классами mocking com, которые реализуют более одного интерфейса. В рабочем коде я QI их между интерфейсами. Как я могу создать макет, который реализует оба интерфейса во время выполнения?