Chúng tôi có Tập lệnh Groovy thoát với status
của 0
khi mọi thứ hoạt động và non-0 status
cho các loại điều kiện lỗi khác nhau. Ví dụ: nếu tập lệnh lấy người dùng và địa chỉ email làm đối số, nó sẽ thoát bằng một số status
của 1
cho người dùng không hợp lệ và status
của 2
để định dạng địa chỉ email không hợp lệ. Chúng tôi sử dụng System.exit(statusCode)
cho việc này. Điều này làm việc tốt, nhưng làm cho các kịch bản khó khăn để viết các trường hợp thử nghiệm cho.Cách đặt trạng thái thoát trong Tập lệnh Groovy
Trong thử nghiệm, chúng tôi tạo GroovyShell
, tạo Binding
và gọi shell.run(script,args)
. Đối với các thử nghiệm xác nhận các điều kiện lỗi, System.exit()
làm cho JVM (và kiểm tra) thoát ra.
Có cách nào khác để sử dụng System.exit()
để thoát khỏi Tập lệnh Groovy không? Tôi đã thử nghiệm với việc ném các ngoại lệ không bị bắt, nhưng điều đó cắt đầu ra và luôn tạo mã trạng thái 1.
Trong các trường hợp thử nghiệm của mình, tôi cũng đã thử nghiệm sử dụng System.metaClass.static.invokeMethod
để không thoát JVM. như một hack xấu xí.
Cảm ơn. Tôi đã dọn dẹp công việc 'System.metaClass.static.invokeMethod' của mình và nó có vẻ ít bị hack hơn nhiều. – Patrick