Контейнер IoC + модульное тестирование - PullRequest
1 голос
/ 18 октября 2010

Можно ли использовать контейнер для создания объектов, которые будут тестироваться? Или мне их строить вручную?

Ответы [ 3 ]

2 голосов
/ 18 октября 2010

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

  1. состав объекта.
  2. управление жизненным циклом.
  3. перехват.

Если вам нужен какой-либо из этих трех предметов, почему бы не позволить инструменту, созданному для этой работы, сделать это за вас?

1 голос
/ 18 октября 2010

Да и нет.

Вы, конечно, можете использовать один, но вы не должны иметь to (Контейнеры отлично подходят для составления сложных систем, но в модульном тесте таких сложностей не должно быть).

Почему вы об этом думаете? Будет ли скручивание руки эквивалентным просто утомительно (это всегда так), или это будет очень сложно? Если это последнее, то вы ставите клейкую ленту на проблему.

0 голосов
/ 19 октября 2010

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

http://wiki.answers.com/Q/What_is_stubs_and_drivers_in_software_testing

Так что да, не «контейнер» как таковой, а потенциально какой-то другой шаблон или класс, на который вы возлагаете исключительную ответственность за воссоздание идеальных ситуаций тестирования.

...