![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
||
|
EvilsInterrupt |
|
||||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Разверну суть опроса чуть подробней. Есть две ситуации:
1)
2)
Какую чаще применяете? |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
второй пример лишний, если не предполагается переназначать поток вывода.
|
|||
|
||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
boostcoder, Со вчерашнего вечера мне в джаббер за этот "лишний" высказалось уже 5 человек! ;)
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
|
|||
|
||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Ок, здраво.
Я всегда был стороником первого метода и старался избегать ситуаций с переназначением, но когда вчера попытался написать свой первый unit-тест с помощью boost::test мне стало не удобно тестировать. Именно поэтому возникла мысль в голове "А прав ли я что всегда принимаю на внешний объект в конструкторе?". Вод кусок кода:
Сложность заключена в следующем: В результате конструирования объекта FileImage возникла ошибка и брошено std::runtime. Как лучше тестировать это? У меня пока нет четкого понимания как тестировать подобные случаи без усложнения тест-кейсов. |
|||
|
||||
borisbn |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
А почему "В этом опросе возможен один вариант ответа" ?
Это, конечно, не догма, но в Qt (а его не балбесы разрабатывали) почти везде предоставляют обе возможности.
и это, на самом деле, очень удобно. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
||||||
|
|||||||
Amp |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: 3 Всего: 17 |
Класс без конструктора по-умолчанию становится местами проблематично использовать.
|
|||
|
||||
EvilsInterrupt |
|
||||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Amp, Судя по всему из-за этого тестировать не особо и удобно )
То что сейчас:
Выглядит не особо удобно и не особо красиво. Я завишу от порядка:
Это сообщение отредактировал(а) EvilsInterrupt - 6.6.2012, 09:02 |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
EvilsInterrupt, делай оба варианта.
|
|||
|
||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Пишу уже 5-й юнит-тест и понимаю, что оба варианта это выигрышная стратегия. Первый вариант удобно юзать, когда код уже написан, а вот второй удобен при написании unit-тестов. По крайней мере пользуясь boost::test именно к этому пришел. Вопрос исчерпан, спасибо! |
|||
|
||||
Randajad |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 295 Регистрация: 15.3.2012 Репутация: 8 Всего: 8 |
Почему зависишь? Кто-то мешает написать код в конструкторе, а не делать все при инициализации?
|
|||
|
||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Randajad,
Приведу пример текущего куска кода из своих юнит-тестов, где будет видна эта зависимость.
Цель этого тест-кейса проста: проверить что класс CustomImage32 умеет корректно записывать измененные значение в хидере. Для этого я копирую эталонный файл, потом эту копию открываю по чтению\записи, далее присваиваю новые значения в его хидер, сохраняю и через новые объекты читаю эти записанные значения. Ожидаю что записываемое равно прочитанному. Добавлено через 2 минуты и 41 секунду Кстати, если есть Enhancement-предложения по моему коду буду очень рад ) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |