Показать сообщение отдельно
Старый 13.03.2017, 19:45   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Как правильно выполнять 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
Просмотров: 432
Размер:	111.7 Кб
ID:	11260   Нажмите на изображение для увеличения
Название: ax7.PNG
Просмотров: 479
Размер:	110.9 Кб
ID:	11261  

__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: gl00mie (2), Raven Melancholic (2).