2012-03-02 40 views
8

Tôi đang cố gắng sử dụng DUnit, đi kèm với RAD Studio XE2, để kiểm tra đơn vị ứng dụng Firemonkey (C++).Đơn vị thử nghiệm Ứng dụng Firemonkey

Vấn đề là, DUnit là một dự án VCL, và điều này khiến tôi không thể đưa Biểu mẫu đơn vị Firemonkey (ví dụ: UfrmMain.h) vào dự án thử nghiệm. Thậm chí nếu tôi tách Visual với Logic (MultiTier/MVC), tôi không thể đưa bất kỳ thư viện Firemonkey nào vào các lớp của tôi (đôi khi điều này sẽ hữu ích, khi có một lớp "CustomDatabase" có đối tượng kiểu TConnection, chỉ có sẵn trong Firemonkey - tất nhiên là chỉ là một ví dụ).

Thử nghiệm có thể thực hiện khi tôi tách riêng mã hoàn toàn và để nó trên biểu mẫu và logic/dữ liệu được lưu trên các lớp với mã C++ thuần túy.

Vì vậy, "điểm chấp" này thực sự là một điều tốt? Buộc tôi làm việc với MultiTier/MVC? (Điều này trong C++ là mới đối với tôi) Hoặc tôi nên tìm một sự thay thế của thử nghiệm đơn vị, cho phép tôi kiểm tra các hình thức quá?

(Bạn có thể cũng giới thiệu cho tôi một số ++ Dự án C trên github hoặc mã ví dụ được tách ra trong cách đề cập, nơi mà tôi có thể dựa vào?)

+0

Nghe có vẻ như đã đến lúc cho một số haxxor Delphi đáng ghét để viết một tác phẩm DUnitFMX –

Trả lời

2

Một cách tiếp cận có thể sẽ được sử dụng TextTestRunner hơn GUITestRunner. Tôi đã không bao giờ thực sự cố gắng này nhưng tôi nghĩ rằng nó khá hợp lý rằng TextTestRunner không sử dụng bất kỳ đơn vị VCL, hoặc ít nhất là những gì nó sử dụng có thể dễ dàng được excised. Và thực sự việc quét mã nguồn nhanh chóng cho thấy rằng điều này sẽ hoạt động.

+0

. (tôi đã phải thay đổi "FrameworkType" từ VCL sang FMX trên ".cbproj" của dự án thử nghiệm để biên dịch, nhưng bây giờ dự án yêu cầu tệp .obj từ tệp thành phần bên thứ ba. gần như từ bỏ firemonkey =/ – Stew

+0

Á hậu thực sự không hoạt động? –

+0

nop; ~~ – Stew