|
![]() |
#1 |
Участник
|
они там появились совсем недавно.
в принципе народ пока только осваивает их. раньше в C# нужно было делать кучу overload методов. для каждого метода свой unit-тест и вася-кот. все было логично. дефолтные параметры есть в basic, php. но в этих системах не было слоев, из-за которых интерфейс был очень стабильным. в общем, дефолтные параметры есть, конечно. буду рад увидеть ссылки на рекомендации "как правильно" и для других систем ))) Цитата:
Сообщение от Андре
![]() Нет, мне кажется мы по разному понимаем unit тестирование. И мне кажется что мое понимание ближе к "каноническому"
![]() Тест который тестирует твой код, и тест который тестирует стандартный функционал, который использует твой код - это разные тесты. В тесте, который тестирует твой код - не надо проверять стандартный функционал. Может быть его вообще лучше замокать. Для проверки стандартного функционала будут свои unit тесты. Каждый unit тест не проверяет весь мир вокруг. Он проверяет изолированный кусочек кода. тут непонятно что делать, если свалился мой тест, но из-за того, что изменилось поведение в стандарте. если отделять мух от котлет, то как отделить правильно? |
|
![]() |
#2 |
Дмитрий Ерин
|
Я почти уверен, что в Аксапте именно так и транслируются методы со значениями по умолчанию - в кучу overload методов. Если только в семерке в Х++ не добавили "именованные" параметры, как в шарпе, то получаем не 2^8 комбинаций дефолтности, а всего лишь 9.
Таким образом, можно свести дальнейший поиск стратегии к умозрительному варианту, что у нас в классе есть 9 методов findDisc: X++: boolean findDisc(PriceType _relation, InventDimId _inventDimId, TableGroupAll _itemCode, ItemId _itemRel, TableGroupAll _accountCode, CustVendAC _accountRel, UnitOfMeasureSymbol _unitID, Qty _quantityAmoun, CurrencyCode _currency, AgreementHeaderExtRecId_RU _agreementHeaderExtRecId, CustVendAC _agreementPartnerCode, LogisticsPostalAddressRecId _deliveryPostalAddress) { // основной код } // здесь еще 7 методов // ... boolean findDisc(PriceType _relation, InventDimId _inventDimId) { return findDisc(_relation, _inventDim, 0,'',0,'','',0,CompanyInfo::standardCurrency(),0,'',0); } ![]() |
|