Как создать тестовый сценарий для блока кода с проверкой Test not running - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь проверить часть кода, которая выполняется только при условии, что условие [If (! Test.isRunning ())] истинно,

Если я выполню определенный тестовый пример для запуска этого кодаэто не будет входить в это, если блок как условие ложно.

if(!Test.isRunningTest()){
//do something
}

1 Ответ

0 голосов
/ 01 июня 2019

Вы не можете проверить этот код. Это явное намерение !Test.isRunningTest(). Код, защищенный этим условием, никогда не будет выполняться в контексте модульного теста Apex.

По этой причине эта структура используется и должна редко использоваться в коде Apex и только для тех элементов кода, которые абсолютно не могут быть выполнены в модульном тесте. Одним из примеров является вызов addFields(), который иногда используется в конструкторе контроллера Visualforce, что недопустимо в контексте теста.

Очень редко можно увидеть более одной строки кода, защищенной таким образом, и это заставляет меня подозревать, что код плохо спроектирован. Защищая только одну строку кода, вы все равно можете получить покрытие кода до 100%, написав if и его тело в одной строке:

if (!Test.isRunningTest()) controller.addFields(new List<String> { 'Name' });

Пока тест if выполняется в тесте, вся строка считается покрытой.

Обычно этот шаблон используется для блокировки выносок. В современном коде вместо этого следует использовать Mocks.

...