Dynamics365货币字段fakexreasy单元测试中的基础货币重新计算



我是Dynamics365的新手,最近开始使用伪造的XRM测试我的代码。

我刚刚遇到一个与货币(Money(字段计算有关的问题,正在为其创建额外的字段(名称以"_Base"结尾(。在单位测试中,不重新计算货币基础字段。

场景是:-测试中的代码在"账户"实体上设置"货币"类型的"营业额"字段。-随后对"营业额"基础货币部分进行了总结。(账户在总结前会在上下文中刷新(

localAccount.turnover = new Money(100);
...
var sumOfTurnovers = localAccounts.Sum(s => s.turnover_Base?.Value ?? 0); // <-- returns 0 in unit tests

结果:失误总数计算为0,而在实际开发环境中,失误总数计算正确。

测试中的代码经常依赖于重新计算的值。

如何在单元测试中模拟此类基础货币字段的重新计算?

FakeXrmEasy不模拟此行为。可能是因为这取决于环境——取决于基础货币和汇率。

根据您试图实现的目标,您需要在安排上下文时提前计算基础货币字段。类似的东西

SetMoneyField(string fieldName, decimal amount, decimal exchangeRate) {
SetAttributeValue(fieldName, amount);
SetAttributeValue(fieldName+"_base", amount*exchangeRate);
}

最新更新