Как издеваться над объектом? - PullRequest
0 голосов
/ 15 марта 2010

Как смоделировать объект для тестирования, если класс, который вы тестируете, является абстрактным? ты не можешь создать из него экземпляр?

Ответы [ 3 ]

3 голосов
/ 15 марта 2010

Mocking создает фиктивную реализацию интерфейса или абстрактного класса и редко конкретных классов. Вы можете сделать эти макеты во время выполнения с помощью фреймворка:

2 голосов
/ 15 марта 2010

Если вы хотите протестировать общую реализацию вашего абстрактного класса, то вам следует создать фиктивную конкретную реализацию в вашей подсистеме тестирования и просто выполнить модульное тестирование общих методов этого класса.

Если, с другой стороны, вам нужно передать ссылку на ваш абстрактный класс, то, как предложил Божо, вам следует использовать фальшивую среду. Мой любимый JMock .

1 голос
/ 15 марта 2010

Как упоминает Пэдди, вы действительно хотите протестировать конкретный класс.

Но, если вы хотите проверить функциональность, предоставляемую абстрактным классом, общий метод для этого - создать abstract TestCase с методом abstract для предоставления конкретного класса и затем протестировать общую функциональность в пределах вашего AbstractWhateverTestCase.

См. http://c2.com/cgi/wiki?AbstractTestCases для некоторых примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...