我是Dynamics 365的新手,最近开始使用伪XRM测试我的代码。
我刚刚遇到了一个与计算货币(货币)字段有关的问题,正在为其创建额外的字段(其名称以‘_Base’结尾)。在单元测试中,不会重新计算货币字段的基数。
场景是:-被测代码在"Account“实体上设置"Money”类型的“营业额”字段。--稍后对“周转”基础货币部分进行汇总。(汇总前在上下文中刷新账号)
localAccount.turnover = new Money(100);
...
var sumOfTurnovers = localAccounts.Sum(s => s.turnover_Base?.Value ?? 0); // <-- returns 0 in unit tests结果:成交量的总和被计算为0,而在真实的开发环境中,它被正确计算。
通常情况下,被测代码依赖于重新计算的值。
如何在单元测试中模拟这些基础货币字段的重新计算?
发布于 2020-09-24 04:40:22
FakeXrmEasy不会模拟此行为。可能是因为它取决于环境--什么是基础货币,什么是汇率。
根据您试图实现的目标,您需要在安排上下文时预先计算基础货币字段。就像这样
SetMoneyField(string fieldName, decimal amount, decimal exchangeRate) {
SetAttributeValue(fieldName, amount);
SetAttributeValue(fieldName+"_base", amount*exchangeRate);
}https://stackoverflow.com/questions/60303012
复制相似问题