Quiero comenzar a usar objetos simulados en mis proyectos Delphi.¿Cuál es tu biblioteca de burlas de Delphi favorita?
Después de una rápida google he encontrado los:
Así que mi pregunta es ¿cuál es tu favorito y por qué?
Quiero comenzar a usar objetos simulados en mis proyectos Delphi.¿Cuál es tu biblioteca de burlas de Delphi favorita?
Después de una rápida google he encontrado los:
Así que mi pregunta es ¿cuál es tu favorito y por qué?
Woaw, soy el líder del proyecto PascalMock y es la primera vez que escucho sobre Delphi Mock Wizard. Muy buena adición a PascalMock.
Por cierto que también tienen algunos marcos más pequeños simulacros:
tal vez hay algunos otros por ahí?
También PascalMock es de código abierto y las contribuciones o ideas de mejoras son bienvenidas.
PD: La última versión PascalMock de CVS añadir características adicionales a la versión 1.1, como:
Aunque es estable, PascalMock no se ha trabajado en años.
Hay una nueva biblioteca falsa llamada Delphi Mocks. Funciona solo con Delphi XE2 o más reciente.
Delphi Mock Wizard solo genera asistentes para Pascal Mock. No son implementaciones competitivas.
Probar Dsharp. Es como Delphi Mocks, pero sin Memory Leaks.
En mi humilde opinión DSHARP es mejor, aunque estaba emocionado con Delphi Mocks al principio.
Nuestro código abierto mORMot framework es ahora capaz, en su versión inestable, a talón o simulacro de cualquier interfaz de Delphi.
Como siempre, la mejor manera de explicar lo que hace una biblioteca es mirar el código que la usa. Aquí hay un ejemplo (similar a la que se envía con RhinoMocks) de verificar que cuando se ejecuta el "olvidado mi contraseña" escenario, recordamos que llamar al método Save()
correctamente:
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;
Y ...eso es todo, ya que la verificación tendrá lugar cuando se publique la instancia IUserRepository
.
características disponibles (algunos son únicos en comparación con otros marcos burlones Delphi):
var
y out
parámetros como valor devuelto, además de un resultado de función;Ver artículos de blogs relacionados:
Tenga una mirada en "Delphi Mocks" y "Delphi Mocks: The Basics"