26.04.2019, 18:35 | #1 |
Участник
|
ax2009: как получить Code Coverage для методов TableMap?
как получить Code Covarage для методов TableMap в ax2009?
такое ощущение, что SysCodeCoverage не может разобрать случаи когда вызываются методы табличных мапов. Хотя с остальными объектами работает нормально. в классе потомке от SysTestCase переопределяю методы utilElementName и utilElementType { return UtilElementType::TableMap; }. Может кто разбирался уже? Последний раз редактировалось mazzy; 26.04.2019 в 18:37. |
|
|
За это сообщение автора поблагодарили: Raven Melancholic (2). |
08.05.2019, 07:02 | #2 |
Участник
|
Не пробовал раньше проверять 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, 'Бамс!!!'); } Начал разбираться, в SysCodeCoverage увидел подмену пути из ..Map в ..Table в методах checkTreeNode и modifyTreenode. Закомментировал эту подмену, результат стал точно противоположным: По статическому методу addressFormatId покрытия нет, а методу экземпляра modifiedField - есть. Пока понятно (видно в отладчике), что в SysCodeCoverage в переменной pathMap по TableMap для статических методов приходит путь Data Dictionary\Tables, а для методов экземпляра путь Data Dictionary\Maps. Почему так, пока не разбирался. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |