Tôi muốn bắt đầu sử dụng các đối tượng giả trên các dự án Delphi của mình.Thư viện yêu thích Delphi của bạn là gì?
Sau một google nhanh chóng tôi đã tìm thấy những:
Vì vậy, câu hỏi của tôi là những gì người ta là yêu thích của bạn và tại sao?
Tôi muốn bắt đầu sử dụng các đối tượng giả trên các dự án Delphi của mình.Thư viện yêu thích Delphi của bạn là gì?
Sau một google nhanh chóng tôi đã tìm thấy những:
Vì vậy, câu hỏi của tôi là những gì người ta là yêu thích của bạn và tại sao?
Xin chào, tôi là trưởng nhóm dự án PascalMock và đây là lần đầu tiên tôi nghe nói về Delphi Mock Wizard! Bổ sung rất tốt cho PascalMock.
BTW bạn cũng có một số khuôn khổ giả nhỏ:
Có thể có một số những người khác xung quanh?
Ngoài ra PascalMock là nguồn mở và đóng góp hoặc ý tưởng cải tiến được hoan nghênh.
PS: Phiên bản PascalMock mới nhất từ CVS thêm các tính năng bổ sung cho phiên bản 1.1, như:
Mặc dù nó ổn định, PascalMock chưa hoạt động trong nhiều năm.
Có thư viện mô hình mới có tên là Delphi Mocks. Nó chỉ hoạt động với Delphi XE2 hoặc mới hơn.
Delphi Mock Wizard chỉ tạo trình hướng dẫn cho Pascal Mock. Họ không cạnh tranh triển khai.
Hãy thử Dsharp. Nó giống như Delphi Mocks, nhưng không có Rò rỉ bộ nhớ.
IMHO DSHARP tốt hơn, mặc dù lúc đầu tôi rất hào hứng với Delphi Mocks.
Nguồn của chúng tôi mở mORMot framework bây giờ có thể, trong phiên bản ổn định của nó, để cuống hoặc giả bất kỳ giao diện Delphi.
Như thường lệ, cách tốt nhất để giải thích thư viện làm gì là xem mã bằng cách sử dụng nó. Dưới đây là một ví dụ (tương tự như một vận chuyển với RhinoMocks) xác minh rằng khi chúng ta thực hiện "quên mật khẩu" kịch bản, chúng tôi nhớ để gọi Save()
phương pháp đúng:
procedure TMyTest.ForgotMyPassword;
var SmsSender: ISmsSender;
UserRepository: IUserRepository;
begin
TInterfaceStub.Create(TypeInfo(ISmsSender),SmsSender).
Returns('Send',[true]);
TInterfaceMock.Create(TypeInfo(IUserRepository),UserRepository,self).
ExpectsCount('Save',qoEqualTo,1);
with TLoginController.Create(UserRepository,SmsSender) do
try
ForgotMyPassword('toto');
finally
Free;
end;
end;
Và ...đó là tất cả, vì việc xác minh sẽ diễn ra khi phiên bản IUserRepository
sẽ được phát hành.
tính năng có sẵn (một số là độc đáo so với các khuôn khổ chế giễu khác Delphi):
var
và out
làm giá trị trả về, ngoài kết quả hàm;Xem bài viết trên blog có liên quan:
Hãy nhìn vào "Delphi Mocks" và "Delphi Mocks: The Basics"