Sto sviluppando un'applicazione che fa molto affidamento su Joda-Money e ho un numero di test unitari che verificano la mia logica aziendale. Un punto (perlomeno secondario) per me è stato il tipo di oggetti da testare con Money
/BigMoney
; in particolare, cosa usare da CurrencyUnit
.Quale valuta usare nei test unitari?
come la vedo io, ho un paio di opzioni:
Basta usare
USD
Questo è chiaramente il modo più semplice per andare, e la maggior parte della mia effettiva applicazione lavorerò con gli Stati Uniti Dollari quindi ha un buon senso. D'altra parte, sembra piuttosto incentrato sugli Stati Uniti, e sono preoccupato che rischierebbe di lasciare deselezionati gli errori specifici della valuta.
Usa un'altra valuta reale, come
CAD
Questo avrebbe raggiunto errati hard-codifiche di
USD
, ma per il resto non è molto meglio di un semplice utilizzandoUSD
.Utilizzare un apposito "fake" currency, vale a dire
XTS
Questo ha chiaramente un senso, dopo tutto,
XTS
è "a disposizione per l'uso nei test". Ma Joda indica le valute psuedo come valute con le cifre decimali-1
. In pratica, la differenza principale tra le valute in Joda-Money è il numero di posizioni decimali, quindi questo rischia di mascherare eventuali errori che coinvolgono la precisione della cifra decimale, come erroneamente l'arrotondamento a un valore intero.registrare il mio propria valuta personalizzato con
CurrencyUnit.registerCurrency()
Questo sarebbe ovviamente lavorare, ma sembra un po 'strano come vedere ci sono alternative.
utilizzare un'istanza
CurrencyUnit
creato da una libreria beffardoPraticamente la stessa registrazione di un valuta personalizzato.
Ancora una volta, questo è ovviamente un problema minore, ma io sono curioso di sapere se c'è una pratica standard per casi come questo, o se c'è un chiaro motivo per preferire una di queste opzioni in particolare.
Questo non mi sembra secondario. Stai per diffondere questa decisione in tutti i tuoi test unitari, giusto? Se non riesci a far esistere questa decisione in un solo posto, stai per esserne bloccato per sempre. – CandiedOrange
@CandiedOrange è d'accordo, ma ho avuto altre domande con cui ho fatto una doccia "perché stai anche perdendo il tuo tempo con questo?!?!?!?!?!" risposte, quindi chiamare tutte le mie curiosità "minori" preoccupazioni è un po 'un meccanismo di difesa. – dimo414
Gli odiatori odieranno. Continua a chiedere, stai ottimista e l'amore ti troverà. Pace. – CandiedOrange