Я новичок в Dynamics 365 и недавно начал тестировать мой код, используя поддельный XRM.
Я только что столкнулся с проблемой, связанной с вычислениями, выполненными для полей валюты (Деньги), для которых создается дополнительное поле (имя которого заканчивается на _Base). В модульных тестах база поля валюты не пересчитывается.
Сценарий таков: - Тестируемый код устанавливает поле «оборот» типа «Деньги» на объекте «Счет». - Позже в «обороте» части базовой валюты подводятся. (Счета обновляются в контексте перед суммированием)
localAccount.turnover = new Money(100);
...
var sumOfTurnovers = localAccounts.Sum(s => s.turnover_Base?.Value ?? 0); // <-- returns 0 in unit tests
Результат: сумма оборотов рассчитывается как 0, в то время как в реальной среде разработчика она рассчитывается правильно.
Это часто случается что тестируемый код опирается на пересчитанные значения.
Как эмулировать перерасчет для таких полей базовой валюты в модульных тестах?