Hiện tại tôi đang sử dụng hệ thống phân cấp thử nghiệm 2 cấp trong DUnit (Test Project -> Test Case -> Test method; xem ví dụ bên dưới). Có thể giới thiệu cấp độ 3 hoặc thậm chí nhiều cấp hơn không?Phân cấp kiểm tra DUnit
Trả lời
Bạn có thể sử dụng phòng thử nghiệm để tạo bao nhiêu mức độ làm tổ như bạn mong muốn. Các documentation cung cấp các ví dụ sau:
Đơn vị
TestFramework
để lộ ra lớpTTestSuite
, lớp mà thực hiện dãy phòng thử nghiệm, vì vậy bạn có thể tạo ra hệ thống phân cấp kiểm tra sử dụng nhiều mã rõ ràng:các chức năng sau đây,
UnitTests
, tạo bộ thử nghiệm và thêm hai lớp thử nghiệm vào nó:function UnitTests: ITestSuite; var ATestSuite: TTestSuite; begin ATestSuite := TTestSuite.create('Some trivial tests'); ATestSuite.addTest(TTestArithmetic.Suite); ATestSuite.addTest(TTestStringlist.Suite); Result := ATestSuite; end;
Một cách khác để thực hiện các chức năng trên sẽ là:
function UnitTests: ITestSuite; begin Result := TTestSuite.Create( 'Some trivial tests', [TTestArithmetic.Suite, TTestStringlist.Suite] ); end;
Trong ví dụ trên, các nhà xây dựng
TTestSuite
thêm các xét nghiệm trong mảng truyền cho bộ ứng dụng .Bạn có thể đăng ký một bộ kiểm tra được tạo ra trong bất kỳ cách trên bởi sử dụng cùng gọi bạn sử dụng để đăng ký trường hợp thử nghiệm cá nhân:
initialization RegisterTest('Simple Test', UnitTests); end.
Khi chạy với
GUITestRunner
, bạn sẽ thấy hệ thống phân cấp mới.
Bạn có thể nhóm các thử nghiệm liên quan trong các bộ thử nghiệm, có thể lồng nhau.
Nếu bạn muốn làm điều đó trong thời gian chạy, hãy xem "Open Test Test Framework (OpenCTF)" của tôi tại sourceforge.
Tôi tạo cấu trúc phân cấp bằng cách đặt dấu gạch chéo ngược trong `SuitePath '. Ví dụ:
initialization
RegisterTests('Group1\Group2', [TExampleTests1.Suite,
TExampleTests2.Suite]);
RegisterTests('Group1\Group3', [TExampleTests3.Suite,
TExampleTests4.Suite]);
end.
Cuối cùng tôi nhận được một cái gì đó như thế này:
ít Rất nhiều mucking xung quanh hơn với cách của David, và bạn có thể lây lan các định nghĩa nhóm của bạn trên các đơn vị khác nhau.
- 1. Kiểm tra GUI DUnit: Tôi có thể buộc 'Ứng dụng' sang một "biểu mẫu" khác không?
- 2. Làm thế nào tôi có thể kiểm tra một lớp Singleton với DUnit?
- 3. Làm thế nào để làm cho Delphi DUnit kiểm tra thất bại khi TSQLConnection.Connected = true
- 4. Kiểm tra Phân phối
- 5. kiểm tra đẳng cấp trong bash
- 6. Kiểm tra nguồn cấp dữ liệu RSS
- 7. Phân cấp ngoại lệ được kiểm tra trong WebServices bằng JAX-WS Maven Plugin (wsimport)
- 8. Ẩn kiểm tra đơn vị từ Hệ thống phân cấp cuộc gọi
- 9. Tôi cần kiểm tra phân cấp chế độ xem trên chương trình iPhone
- 10. Làm cách nào để kiểm tra phân cấp lớp của Python?
- 11. Làm cách nào để tùy chỉnh các lớp vỏ kiểm tra DUnit được tạo bởi trình hướng dẫn Test Case?
- 12. Kiểm tra tên phân phối Linux
- 13. Kiểm tra chiều dài chuỗi nhị phân?
- 14. Phân chia phao Cython PyExc_ZeroDivisionError kiểm tra
- 15. Kiểm tra nâng cấp ứng dụng trên iPhone
- 16. Cách kiểm tra nhà cung cấp nội dung trên Android
- 17. Thực hiện thư viện kiểm tra cấp phép
- 18. Cách kiểm tra nhà cung cấp tùy chỉnh AngularJS
- 19. Kiểm tra nhà cung cấp thành viên không có ASP.NET
- 20. Máy chủ HTTP để kiểm tra đơn vị trong Delphi
- 21. Lấy, lưu và phân tích cú pháp nguồn cấp dữ liệu XML từ xa, kiểm tra xác thực trong PHP
- 22. Làm cách nào để kiểm tra xem hồ sơ cấp phép phân phối iOS có bật thông báo đẩy không?
- 23. kiểm tra tải phân tán trên aws với jmeter
- 24. PHPUnit kiểm tra dữ liệu nhị phân tải lên
- 25. Cách kiểm tra xem số có số thập phân không?
- 26. Cách kiểm tra trạng thái của bảng phân cảnh?
- 27. Công cụ để kiểm tra phân mảnh bộ nhớ
- 28. Kiểm tra độ phân giải của Java ParseInt
- 29. Kiểm tra RSpec bị hỏng bởi phân trang (Kaminari)
- 30. Tạo một Jar kiểm tra nhị phân - Gradle
Nó hoạt động, cảm ơn. – kludg
@Serg Bạn cũng có thể thêm dấu chấm vào tên mà bạn đăng ký kiểm tra và DUnit sẽ thêm một mức cho mỗi dấu chấm. Ví dụ, khi bạn thực hiện 'RegisterTest ('Simple.Test', UnitTests);' Nó sẽ tạo ra Simple như một nút và Test như là một subnode của nó trong hệ thống phân cấp thử nghiệm. Tính năng rất đẹp để nhóm thử nghiệm trong các đơn vị khác nhau dưới cùng một tên chức năng. –
@Marjan +1 thật thú vị, không biết điều đó. Tôi có cảm giác rằng có rất nhiều quyền lực trong DUnit mà không được biết đến rộng rãi. –