2008-11-16 20 views

Respuesta

20

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:

  • creación simulacro automática en tiempo de ejecución para las interfaces utilizando RTTI
  • permite a espera métodos llamadas en cualquier orden
  • espera que al menos x llamadas de un método
11

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.

2

Delphi Mock Wizard solo genera asistentes para Pascal Mock. No son implementaciones competitivas.

7

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.

5

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):

  • Claro distinction between stubs and mocks, la integración con our Unit Testing classes;
  • Manejar var y out parámetros como valor devuelto, además de un resultado de función;
  • Definición del troceo a través de una interfaz fluida, o un delegado/devolución de llamada;
  • Se burla de los patrones "expect-run-verify" y/o "run-verify" (también conocido como "espía de prueba"), a elección, según las expectativas de prueba;
  • Rastreo de llamadas a métodos integrados;
  • Código abierto, que funciona desde Delphi 6 hasta XE3;
  • Ligero y rápido (no confíe en TVirtualInterface lento).

Ver artículos de blogs relacionados:

Cuestiones relacionadas