Не пробовал раньше проверять TableMap, стало интересно, вот что сейчас получилось в результате быстрого простого эксперимента. Естественно, никакого теста не выполняется, только для проверки покрытия.
Эксперимент на TableMap 'AddressMap', код класса тестирования:
X++:
void new()
{
;
super();
elementName = 'AddressMap';
elementType = UtilElementType::TableMap;
}
X++:
public void testAddressFormatId()
{
;
AddressMap::addressFormatId('RU');
this.assertEquals(1, 1, 'Бамс!!!');
}
X++:
public void testModifiedField()
{
Address address;
AddressMap addressMap;
;
addressMap = address;
select firstOnly addressMap;
addressMap.modifiedField(fieldNum(Common, RecId));
this.assertEquals(1, 1, 'Бамс!!!');
}
По статическому методу
addressFormatId покрытие есть, а методу экземпляра
modifiedField - нет.
Начал разбираться, в
SysCodeCoverage увидел подмену пути из ..Map в ..Table в методах
checkTreeNode и
modifyTreenode. Закомментировал эту подмену, результат стал точно противоположным:
По статическому методу
addressFormatId покрытия нет, а методу экземпляра
modifiedField - есть.
Пока понятно (видно в отладчике), что в
SysCodeCoverage в переменной
pathMap по TableMap для статических методов приходит путь Data Dictionary\Tables, а для методов экземпляра путь Data Dictionary\Maps.
Почему так, пока не разбирался.