Цитата:
Сообщение от
belugin
Поискал в наших тестах нашел runas и invokestatocmethodil - скорее всего, ничего более удобного нет
жаль.
дело в том, что для runAs должен быть метод со специальной сигнатурой - параметром только контейнер. Кроме того, в контейнер далеко не все получится засунуть.
что тут же делает тестирование в CIL дико трудозатратным.
============
Если хочется попробовать, то можно взять проект
https://github.com/mazzy-ax/SysString
задать свойство RunOn=Server для класса StringTest
и добавить два метода:
в класс String:
X++:
public server static container trimIdentIL(container pack)
{
boolean isCLR = xSession::isCLRSession();
str s = conPeek(pack, 1);
SysText text = SysText::construct(s);
str ret = SysText::trimIdent(text).getText();
return [ret];
}
и в класс StringTest:
X++:
void testTrimIdent_IL()
{
str s = @'
ABC
123
456
';
anytype dummy = new XppILExecutePermission().assert();
container ret = runClassMethodIL(ClassStr(String), staticMethodStr(String, trimIdentIL), [s]);
this.assertEquals('ABC\n 123\n456', conPeek(ret, 1));
}
но это как-то сильный перебор для обычных проектов, в которых нет специально подготовленных для CIL методов.
я надеялся, что как-нибудь допилили SysTest-классы