Tôi đang phát triển một ứng dụng dựa chủ yếu vào Joda-Money và có một số bài kiểm tra đơn vị xác minh logic kinh doanh của tôi. Một (thừa nhận là nhỏ) gắn bó điểm cho tôi đã được loại Money
/BigMoney
đối tượng để thử nghiệm với; cụ thể, những gì CurrencyUnit
để sử dụng.Loại tiền nào để sử dụng trong các bài kiểm tra đơn vị?
Như tôi đã nhìn thấy nó, tôi có một vài lựa chọn:
Chỉ cần sử dụng
USD
Đây rõ ràng là cách dễ nhất để đi, và hầu hết các ứng dụng thực tế của tôi sẽ làm việc với Mỹ Đô la để nó làm cho một chút công bằng của ý nghĩa. Mặt khác, nó cảm thấy khá trung tâm của Mỹ, và tôi lo ngại rằng nó sẽ có nguy cơ cho phép các lỗi cụ thể về tiền tệ không được kiểm soát.
Sử dụng khác tiền thật, giống như
CAD
này sẽ bắt sai lầm cứng mã khác của
USD
, nhưng mặt khác không phải là tốt hơn nhiều so với chỉ sử dụngUSD
.Sử dụng một chuyên "fake" currency, ví dụ:
XTS
Điều này làm cho rõ nghĩa nào đó, sau khi tất cả,
XTS
được "dành riêng để sử dụng trong thử nghiệm". Nhưng Joda biểu thị tiền xu psuedo là tiền tệ với-1
số thập phân. Trong thực tế, sự khác biệt chính giữa các loại tiền tệ trong Joda-Money là số chữ số thập phân, do đó, rủi ro này che dấu bất kỳ lỗi nào liên quan đến độ chính xác vị trí thập phân, chẳng hạn như làm tròn sai đến một giá trị số nguyên.đăng ký tiền tệ tùy chỉnh của riêng tôi với
CurrencyUnit.registerCurrency()
Điều này rõ ràng sẽ làm việc, nhưng dường như một chút cái thấy lẻ như có lựa chọn thay thế.
Sử dụng một trường hợp
CurrencyUnit
tạo ra bởi một thư viện mockingKhá nhiều giống như việc đăng ký một tệ tùy chỉnh.
Một lần nữa, điều này rõ ràng là một vấn đề nhỏ, nhưng tôi tò mò nếu có một tiêu chuẩn thực hiện đối với trường hợp như thế này, hoặc nếu có một lý do rõ ràng để thích một trong các tùy chọn này nói riêng.
Điều này dường như không hề nhỏ đối với tôi. Bạn sắp lan truyền quyết định này trên tất cả các bài kiểm tra đơn vị của bạn phải không? Nếu bạn không thể đưa ra quyết định này chỉ tồn tại ở một nơi thì bạn sẽ bị mắc kẹt mãi mãi. – CandiedOrange
@CandiedOrange đồng ý, nhưng tôi đã có câu hỏi khác được tắm rửa với "tại sao bạn thậm chí lãng phí thời gian của bạn về điều này?!?!?!?!?!" phản ứng, vì vậy gọi tất cả các mối quan tâm "nhỏ" của tôi là một chút của một cơ chế bảo vệ. – dimo414
Người ghét sẽ ghét. Tiếp tục hỏi, hãy lạc quan và tình yêu sẽ tìm thấy bạn. Hòa bình. – CandiedOrange