我正在开发一个严重依赖Joda-Money的应用程序,并且有许多单元测试来验证我的业务逻辑。对我来说,一个(诚然是次要的)症结是要测试什么样的Money
/BigMoney
对象;具体来说,CurrencyUnit
用什么。
在我看来,我有几个选择:
只需使用
USD
这显然是最简单的方法,而且我的大部分实际应用程序都将使用美元,所以这很有意义。另一方面,它感觉相当以美国为中心,我担心它会冒着让特定于货币的错误不受控制的风险。
使用另一种真实货币,例如
CAD
这将捕获错误的硬编码
USD
,但除此之外并不比仅使用USD
.使用专用的“假”货币,即
XTS
这显然是有道理的,毕竟
XTS
是“保留用于测试”。但 Joda 将伪货币表示为带-1
小数位的货币。实际上,Joda-Money 中货币之间的主要区别在于小数位数,因此这可能会掩盖任何涉及小数位精度的错误,例如错误地四舍五入为整数值。注册我自己的自定义货币
CurrencyUnit.registerCurrency()
这显然可行,但似乎有点奇怪,因为有替代方案。
使用
CurrencyUnit
模拟库创建的实例与注册自定义货币几乎相同。
同样,这显然是一个小问题,但我很好奇这样的情况是否有标准做法,或者是否有明确的理由特别喜欢这些选项之一。