Показать сообщение отдельно
Старый 13.03.2017, 19:45   #1  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,786 / 3660 (180) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Как правильно выполнять unit-тестирования методов с параметрами по умолчанию на ваш взгляд?
А не побухтеть ли нам, уважаемые кроты?

Предположим, есть метод с кучей параметров по умолчанию. (см. скриншот)
Для определенности возьмем, класс PriceDisc, метод findDisc.
(Кстати, для этого метода мс таки и не написал unit test. И это хорошо для обсуждения)

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

Как бы вы написали такой unit test?
Какую стратегию вы считаете правильной для тестирования методов с параметрами по умолчанию? Почему?
Какие статьи/книги/ссылки вы считаете релевантными по данной теме? Почему?

X++:
boolean  findDisc(PriceType             _relation,
                  InventDimId           _inventDimId,
                  TableGroupAll         _itemCode       =  0,
                  ItemId                _itemRel        = '',
                  TableGroupAll         _accountCode    =  0,
                  CustVendAC            _accountRel     = '',
                  UnitOfMeasureSymbol   _unitID         = '',
                  Qty                   _quantityAmount =  0,
                  // <GEERU>
                  CurrencyCode          _currency       = CompanyInfo::standardCurrency(),
                  AgreementHeaderExtRecId_RU _agreementHeaderExtRecId = 0,
                  CustVendAC                 _agreementPartnerCode = '')
                  // </GEERU>
{
    PriceDiscTable      priceDiscTable;
    boolean             discExist;
    container           key;
    container           cacheValue;
    int                 i;
    FromDate            localFromDate;
    ToDate              localToDate;
    AmountQty           localQuantityAmountFrom;
    AmountQuantityTo    localQuantityAmountTo;
    RecId               localRecid;
    boolean             cacheMode;
Миниатюры
Нажмите на изображение для увеличения
Название: ax6.PNG
Просмотров: 64
Размер:	111.7 Кб
ID:	11260   Нажмите на изображение для увеличения
Название: ax7.PNG
Просмотров: 82
Размер:	110.9 Кб
ID:	11261  

__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
За это сообщение автора поблагодарили: Raven Melancholic (2), gl00mie (2).